【发布时间】:2020-07-23 19:52:03
【问题描述】:
我正在尝试在两个单独的工作簿中的两个工作表的 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
【问题讨论】:
-
您尝试分配给
wb1的工作簿是否打开?还有——x和y是什么? -
我都试过了,打开和关闭都显示同样的错误
-
x 和 y 是每次运行代码时都会更改的文件名。它正在抓取一个网站,并且所有这方面都运行良好
-
执行
Debug.Print w1以查看完整路径和名称 - 您可能正在将“.xlsm”添加到已经具有“.xlsm”扩展名的文件中。 -
路径不正确:(
标签: excel vba runtime-error worksheet