【发布时间】:2016-10-10 14:02:59
【问题描述】:
我编写了一个代码,它将使用 A 列中的单元格并在网站中搜索它并拉下我需要的某个表格。但是,有时我会遇到错误(因为名称错误或其他原因),我希望代码跳过它并继续。
示例:如果搜索 A3 有问题,我希望代码搜索 A4 等。
错误是运行时错误“91”:对象变量或未设置块变量
代码:
Sub SearchBot()
Dim objIE As InternetExplorer
Dim aEle As HTMLLinkElement
Dim y As Integer
Dim result As String
Dim tbl As Object, obj_tbl As Object
Dim lastRow As Long
Dim start_time As Date
Dim end_time As Date
Dim cookie As String
Dim result_cookie As String
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.navigate "https://website.com"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
For i = 2 To 1829
objIE.document.getElementById("SearchTopBar").Value = _
Sheets("Sheet2").Range("A" & i).Value '
Set oNode = objIE.document.getElementsByClassName("iPadHack tmbsearchright"
(0)
oNode.Click
On Error GoTo ErrorHandler
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
Dim tblEle As Object
Set tblEle = objIE.document.getElementsByClassName("cTblListBody")(5)
Sheets("Sheet2").Range("B" & i).Value = tblEle.innerText
Debug.Print tblEle.innerText
Next
ErrorHandler
Resume Next
objIE.Quit
End Sub
【问题讨论】:
-
当您单步执行代码时,它是否真的命中了您的 ErrorHandler?
-
不是。它不会让我开始代码说:编译错误:未定义子或函数
-
我怀疑它可能是使用 IE 未打开的参考。第三个点msdn.microsoft.com/en-us/library/…
-
如果您遇到编译错误,您如何识别运行时错误?你的实际问题是什么?编译还是运行时?
-
如果我拿出下面的代码,代码就可以了。然后我会收到错误 91。原因是有时我使用的网站无法识别正在搜索的名称。 "On Error GoTo ErrorHandler Error Handler Resume Next"
标签: excel for-loop onerror vba