Excel VBA工作代码突然出现与XMLHTTP相关的运行时错误91

Excel VBA工作代码突然出现与XMLHTTP相关的运行时错误91,excel,vba,runtime-error,runtime,Excel,Vba,Runtime Error,Runtime,编辑: 我已经测试了响应文本,发现错误背后的原因是,由于excel发送了大量搜索请求,请求被重定向到“我不是机器人”页面。有什么办法可以防止这种情况发生吗 原件: 我有一段代码(在线找到并修改过),当我执行几次后,它就可以正常工作,然后创建 运行时错误“91-对象变量或未设置块变量” 然后,在我等待大约一个小时后,它工作正常,我没有改变任何东西,然后它再次产生错误。等等 这段代码最初是为了在谷歌上搜索字符串列表并返回多少个结果。我修改了它来搜索精确的字符串,如果有结果或没有结果就返回 代码如下:

编辑: 我已经测试了响应文本,发现错误背后的原因是,由于excel发送了大量搜索请求,请求被重定向到“我不是机器人”页面。有什么办法可以防止这种情况发生吗

原件: 我有一段代码(在线找到并修改过),当我执行几次后,它就可以正常工作,然后创建

运行时错误“91-对象变量或未设置块变量”

然后,在我等待大约一个小时后,它工作正常,我没有改变任何东西,然后它再次产生错误。等等

这段代码最初是为了在谷歌上搜索字符串列表并返回多少个结果。我修改了它来搜索精确的字符串,如果有结果或没有结果就返回

代码如下:

Sub SearchHits()

Dim url, name As String
Dim i, lastRow As Long
Dim XMLHTTP As Object
Dim html As Object

Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False

lastRow = Range("a" & Rows.Count).End(xlUp).Row

For i = 1 To lastRow
    Name = """" & Cells(i, 1).Value & """"
    url = "https://www.google.co.in/search?q=" & Name & "&rnd=" & WorksheetFunction.RandBetween(1, 10000)

    Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0")
    XMLHTTP.Open "GET", url, False
    XMLHTTP.setRequestHeader "Content-Type", "text/xml"
    XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
    XMLHTTP.send

    Set html = CreateObject("htmlfile")
    html.body.innerHTML = XMLHTTP.ResponseText

If html.getElementById("topstuff").innerText <> "" Then  '<-----Highlighted on error
    Cells(i, 9) = "–"
Else
    Cells(i, 9) = "Results Found"
End If
Next

End Sub
subsearchhits()
Dim url,名称为字符串
昏暗的我,最后一排一样长
Dim XMLHTTP作为对象
将html设置为对象
Application.ScreenUpdating=False
Application.DisplayStatusBar=False
Application.EnableEvents=False
ActiveSheet.DisplayPageBreaks=False
lastRow=范围(“a”和Rows.Count).End(xlUp).Row
对于i=1到最后一行
Name=“”&单元格(i,1)。值(“”)
url=”https://www.google.co.in/search?q=“&Name&”&rnd=“&WorksheetFunction.randbween(11000)
设置XMLHTTP=CreateObject(“MSXML2.ServerXMLHTTP.6.0”)
XMLHTTP.Open“GET”,url,False
XMLHTTP.setRequestHeader“内容类型”、“文本/xml”
XMLHTTP.setRequestHeader“用户代理”、“Mozilla/5.0(Windows NT 6.1;rv:25.0)Gecko/20100101 Firefox/25.0”
XMLHTTP.send
设置html=CreateObject(“htmlfile”)
html.body.innerHTML=XMLHTTP.ResponseText

如果html.getElementById(“toptuff”).innerText为“”,则检查响应文本XMLHTTP。ResponseText@techie .. 我应该检查什么?@techie,,,我检查了回复文本,发现我的搜索请求被视为一个机器人,而回复文本是reCAPTCHA页面。。。有什么想法吗?