РЕДАКТИРОВАТЬ: Я проверил текст ответа и выяснил, что причина ошибки заключается в том, что запрос перенаправляется на страницу "Я не робот" из-за большого количества поисковых запросовотправлено Excel.Есть ли что-нибудь, что можно сделать, чтобы этого не случилось?
Оригинал: У меня есть этот код (нашел его в сети и изменил его), который отлично работает, когда я выполняю его несколько раз, онзатем создает
Ошибка времени выполнения "91 - Переменная объекта или переменная блока не установлена"
Затем, после примерно часа ожидания, все работает нормально, без измененийчто-нибудь, тогда это снова создает ошибку.и так далее ...
Код изначально был для поиска в Google списка строк и возврата количества результатов.Я изменил его, чтобы найти точную строку и просто вернуть, если есть результаты или нет.
Вот код:
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
Я не уверен, в чем причина, яУ меня есть несколько догадок, но я надеюсь, что кто-то здесь сможет объяснить мне причину и обходной путь.Я занимаюсь исследованиями, и каждый день я ищу много имен, и было бы очень полезно, если бы я мог знать, какие результаты есть, а какие нет.
Было бы еще более удивительно, если бы кто-то мог помочь с кодомчтобы вернуть точное количество поисков (найденное внизу страницы).
С наилучшими пожеланиями!