Согласно this post Я исправил проверку объекта. Иногда код будет работать нормально для 10 записей, что делает их правильными, иногда он будет работать в течение пяти. Иногда это неправильно.Что прерывает мой короткий блок VBA?
Он всегда терпит неудачу при получении внутреннего текста элемента. Когда он получает результат Y/N неправильно, я вообще не знаю, что вызывает это.
Пожалуйста, помогите! Это сводит меня с ума. Я проверял ошибку на каждом этапе снова и снова.
Sub LetsAutomateIE()
Dim barcode As String
Dim rowe As Integer
Dim document As HTMLDocument
Dim Element As HTMLDivElement
Dim text As String
Dim pos As Integer
Set ie = CreateObject("InternetExplorer.Application")
rowe = 2
While Not IsEmpty(Cells(rowe, 2))
barcode = Cells(rowe, "B").Value
pos = 0
text = ""
Set document = Nothing
With ie
.Visible = False
.navigate2 "https://www.amazon.co.uk/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=" & barcode
Do Until ie.readyState = 4
Loop
End With
Set document = ie.document
If IsObject(document.getElementById("result_0")) = False Then GoTo Here
text = document.getElementById("result_0").innerText
If InStr(text, "STEELBOOK") Or InStr(text, "Steelbook") Or InStr(text, "Steel book") <> 0 Then pos = 1
If pos <> 0 Then Cells(rowe, 4) = "Y" Else Cells(rowe, 4) = "N"
Here:
rowe = rowe + 1
Wend
Set ie = Nothing
End Sub
Ниже представлен выбор образцов штрих-кодов, с которыми я работал. Мне никогда не удавалось успешно справиться с этим.
5030305517076
5030305517816
5060223767925
5060223767949
5060223767956
5060223767970
5060223767994
8717418358563
8717418365851
Спасибо большое,
Сэм
Положить 'DoEvents' в цикл ожидания? – GSerg