[英]Subscript out of range when referencing a worksheet in another workbook from a variable
[英]Why am I getting a Subscript Out of Range Error 9 when referencing another Workbook/Worksheet in VBA?
我有一个宏(在主工作簿内),它使用.value2
从另一个工作簿/工作表获取数据。
我在代码中尝试了不同的更改。 我仔细检查了两个工作簿是否都打开了。 但是,我不断得到下Subscript out of range (Error 9)
。
Sub NielsenScorecard_DataPaste()
Dim WbNielsenScorecard As Workbook
Set WbNielsenScorecard = Workbooks("Nielsen Scorecard_Template.xlsm")
TotalUS_DataPaste
End Sub
Sub TotalUS_DataPaste()
**Subscript out of range (Error 9)**
With Workbooks("Power Query - Meijer_Walmart_Total US xAOC.xlsm").Worksheets("PQTotalUS")
Dim Data(0) As Variant
'Copy Data Range
Data(0) = .Range(.Cells(.Rows.Count, "A").End(xlUp), "AA2").Value2
End With
'Worksheet Code Name within this Workbook
With wsTotalUS
Debug.Print wsTotalUS.Name
.AutoFilter.ShowAllData
.Range("A2:AA" & .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row).ClearContents
With .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Resize(UBound(Data(0)))
.Resize(ColumnSize:=UBound(Data(0), 2)).Value2 = Data(0)
End With
End With
End Sub
您可以通过其代号引用工作表,但它是一种不同的格式,并且必须在ThisWorkbook
中。 一个缺点是您无法通过代号引用另一个工作簿中的工作表。 Worksheets("PQ Total US").Activate
与PQTotalUS.Activate
。 如果您的目标是缩短代码并且不必重复长名称,那么另一种选择是执行以下操作:
Dim wb1 as Workbook
Dim ws1 as Worksheet
Set wb1 = Workbooks("Power Query Meijer_Walmart_Total US xAOC.xlsm")
Set ws1 = wb1.Worksheets("PQ Total US")
With ws1
'Do something
End with
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.