Я пытаюсь переписать этот макрос из ie.application на запросы http в VBA.Макрос переходит к URL, получает HTML, затем анализирует и очищает необходимые данные.
Он хорошо работает с одним запросом, но когда я пытаюсь сделать это с циклом FOR с тысячами URL, происходит сбой Excel.
Я думаю, что я должен каким-то образом "закрыть" соединение, прежде чем перейти к следующему циклу, но я не нашел решения.
Вот мой код:
Sub GetQuotes()
Dim xmlhttp As New MSXML2.XMLHTTP60, myurl As String
Dim html As New HTMLDocument
For r = 1 To 10
'*****GO TO PRODUCT PAGE*****
path= ThisWorkbook.Worksheets("Sheet1").Cells(r, 1).Value
myurl = "https://some_domain.com" + path
xmlhttp.Open "GET", myurl, False
xmlhttp.send
html.body.innerHTML = xmlhttp.responseText
'*****GET PRICE*****
If Not html.getElementById("some_id") Is Nothing Then
price = html.getElementById("some_id").innerHTML
ThisWorkbook.Worksheets("sheet1").Cells(r, 2).Value = price
Else
price = "empty"
ThisWorkbook.Worksheets("sheet1").Cells(r, 2).Value = price
End If
Next r
End Sub
Активны ссылки на XML и HTML