【问题标题】:How do I select the entire worksheet with vba code如何使用 vba 代码选择整个工作表
【发布时间】:2018-11-17 16:27:43
【问题描述】:

我是 vba 代码的新手,我想弄清楚如何在将数据放入模板时选择整个 excel 文件。我每天打开一个每日文件,名称会发生​​变化,行数和列数也会有所不同。自动导入时如何更改代码以选择整个工作表。我使用的代码只选择工作表中的第一行,而不是整个工作表。

这是我的代码:

Sub ImportFile()       
    Application.ScreenUpdating = False    

    Dim parentWorkbook As Excel.Workbook        
    Dim otherWorkbook As Excel.Workbook        
    Dim workbookName As Variant

    Set parentWorkbook = ActiveWorkbook

    workbookName = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*")

    If Not workbookName = False Then     
        Set otherWorkbook = Workbooks.Open(workbookName)        
        parentWorkbook.Sheets(2).Range("A2:AR2").Value = otherWorkbook.Sheets(1).Range("A2:AR2").Value     
        otherWorkbook.Close False 
        Set otherWorkbook = Nothing 
    End If

    Application.ScreenUpdating = True  
End Sub

【问题讨论】:

  • 为什么不直接将 otherWorkbook.Sheets(1) 复制到第一个工作簿中?

标签: vba excel select range


【解决方案1】:

在进行实际选择之前尝试激活工作表。就像这样:

Sub SelectSingleSheet()
       Sheets("Sheet1").activate
       Sheets("Sheet1").Select //where 'Sheet1' is name of sheet

End Sub

【讨论】:

  • 无需激活。选择对象来处理它是一种不好的做法。
【解决方案2】:

你能说吗

parentWorkbook.Sheets(2).Range("A1").Resize(otherWorkbook.Sheets(1).UsedRange.Rows.Count, otherWorkbook.Sheets(1).UsedRange.Columns.Count).Value = otherWorkbook.Sheets(1).UsedRange.Value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    相关资源
    最近更新 更多