![](/img/trans.png)
[英]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.