У меня есть проблема, когда я не делаю никакого прогресса.
Я сейчас работаю над магистерской диссертацией. Для этого у меня есть список актеров, и мне нужно проверить, у кого из них есть собственная (немецкая) страница в Википедии. (примерно 20 000 актеров)
Поскольку я не очень опытен в программировании на VBA, я искал решение здесь, на форуме.
Я нашел код, с помощью которого вы можете искать URL через Google и получить первый результат, скопированный в Excel.
Использование VBA в Excel для поиска Google в IE и возврата гиперссылки на первый результат
Я пытался ограничить поиск немецкой википедией, используя поиск в Google только по немецким страницам. Например. "site: de.wikipedia.org intitle: Джонни Депп"
Это хорошо работает для известных актеров, но я получаю код ошибки при поиске актера, у которого нет собственной страницы. «Ошибка 91: переменная объекта или переменная блока не установлена»
Так, возможно, вы можете помочь мне встроить обходной путь в код, который пропускает актера, когда у него / нее нет собственной страницы, и инсад переходит к следующему в списке?
Извините за вопрос новичка, но это было бы здорово! :)
Или, может быть, у вас есть даже более простое решение.
Большое спасибо!
Образец файла
Sub XMLHTTP()
Dim url As String, lastRow As Long
Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
Dim start_time As Date
Dim end_time As Date
lastRow = Range("A" & Rows.Count).End(xlUp).Row
Dim cookie As String
Dim result_cookie As String
start_time = Time
Debug.Print "start_time:" & start_time
For i = 2 To lastRow
url = "https://www.google.de/search?q=" & Cells(i, 1) & "&rnd=" & WorksheetFunction.RandBetween(1, 10000)
Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
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
Set objResultDiv = html.getelementbyid("rso")
Set objH3 = objResultDiv.getelementsbytagname("H3")(0)
Set link = objH3.getelementsbytagname("a")(0)
str_text = Replace(link.innerHTML, "<EM>", "")
str_text = Replace(str_text, "</EM>", "")
Cells(i, 2) = str_text
Cells(i, 3) = link.href
DoEvents
Next
end_time = Time
Debug.Print "end_time:" & end_time
Debug.Print "done" & "Time taken : " & DateDiff("n", start_time, end_time)
MsgBox "done" & "Time taken : " & DateDiff("n", start_time, end_time)
End Sub