VBA工作簿/工作表运行时错误'9':下标超出范围

时间:2020-07-23 10:33:44

标签: excel vba runtime-error worksheet

我正在尝试在两个单独的工作簿中的两个工作表的A列中找到匹配项,但是遇到上述运行时错误,并突出显示了“ Set wb1 = Workbooks(w1)”行,我在做什么错?我一直在努力解决这一问题(插入额头巴掌表情符号大声笑),所以任何建议都将不胜感激。

Dim w1 As String, w2 As String
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim cl As Range, ws1Rng As Range, ws2Rng As Range, aCell As Range
Dim lRowW1 As Long, lRowW2 As Long
Dim lastRowWb1 As Long
Dim lastRowWb2 As Long
Dim aVal As Object
Dim bVal As Object

w1 = "C:\Users\Desktop\Scrapes\" & x & ".xlsm"
w2 = "C:\Users\Desktop\Scrapes\" & y & ".xlsm"

Set wb1 = Workbooks(w1)
Set wb2 = Workbooks(w2)
Set ws1 = wb1.Sheet1("NewHighs")
Set ws2 = wb2.Sheet1("NewHighs")

lastRowWb1 = ws1.Range("A1").CurrentRegion.Rows.Count
lastRowWb2 = ws2.Range("A1").CurrentRegion.Rows.Count

For Each aVal In ws1.Range("A2", ws1.Range("A" & lastRowWb1))
    For Each bVal In ws2.Range("A2", ws2.Range("A" & lastRowWb2))
        If aVal = bVal Then
            MsgBox aVal
        End If
    Next
Next

1 个答案:

答案 0 :(得分:0)

您可能需要对象名称:

Set wb1 = Workbooks.Open(w1, False, False)
Set wb2 = Workbooks.Open(w2, False, False)
Set ws1 = wb1.Worksheets("NewHighs")
Set ws2 = wb2.Worksheets("NewHighs")