简体   繁体   中英

Why am I getting a Subscript Out of Range Error 9 when referencing another Workbook/Worksheet in VBA?

I have a Macro (within a Master Workbook) that is getting data from another Workbook/Worksheet using .value2 .

I've tried different changes, within the code. I double checked that both workbooks are open. However, I keep getting the 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

VBA 打印屏幕

You can reference a sheet by its codename, however it is a different format and must be in ThisWorkbook . A drawback is that you cannot reference a sheet in another workbook by its codename. Worksheets("PQ Total US").Activate versus PQTotalUS.Activate . If your goal is to shorten the code and not have to repeat a long name, then another option is to do the following:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM