Вот разбивка того, что я пытаюсь сделать:
1) Возьмите значение из списка в электронной таблице
2) Поиск URL с этим значением
3) Возьмите ElementId
из HTML и добавьте его в электронную таблицу (его не нужно было добавлять в электронную таблицу, но он мне нужен для следующего поиска, и я не был уверен, как это сделать иначе)
4) Используйте ElementId для поиска другого URL
5) Извлечь значение ClassName
из HTML
Моя проблема возникает, когда значение в списке не содержит IDValue
из моего поиска в HTML ElementId
. Мне нужно пропустить эти значения и GoTo NextName
, но я не нашел успешного способа сделать это.
Я пытался добавить таймер к циклу выполнения, но все еще не смог перейти к следующему i
в списке.
Вот мой код:
Option Explicit
Public Sub CheckNames()
Dim ws As Worksheet, i As Long, IE As InternetExplorerMedium
Dim doc As HTMLDocument, docElement As Object
Dim docClass As Object
Set ws = ActiveSheet
Set IE = New InternetExplorerMedium
1)
For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
IE.Visible = False
2)
IE.navigate "Beginning of URL" & ws.Cells(i, 1).Value & "End of URL"
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
IE.Refresh
Set doc = IE.document
3)
Do
Set docElement = Nothing
On Error Resume Next
Set docElement = doc.getElementById("IDValue")
On Error GoTo NextName
DoEvents
Loop Until Not docElement Is Nothing
ws.Cells(i, 3).Value = Right(Trim(docElement.innerText), 5)
4) * * тысяча тридцать-пять
IE.navigate "Beginning of another URL" & ws.Cells(i, 3).Value & "End of URL"
5)
Do
Set docClass = doc.getElementsByClassName("CLass Name in HTML")(3)
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
ws.Cells(i, 4).Value = Trim(docClass.innerText)
Set doc = Nothing
Set docElement = Nothing
NextName:
Next i
IE.Quit
End Sub
Короче говоря, я ищу способ перейти к следующему i
в списке, когда doc.getElementById("IDValue")
не имеет значения.
Заранее спасибо!