Итак, на веб-странице создается таблица JavaScript, которую я пытаюсь просмотреть и щелкнуть ссылки. Ссылки открывают всплывающее окно, а затем VBA нажимает кнопку во всплывающем окне, которое обновляет и закрывает окно. Он отлично работает для первого всплывающего окна, но когда он попадает в последнюю строку «Следующая ссылка», он возвращается к For
, но переменная для «ссылки» пуста, но есть еще 2 ссылки и выдает ошибку, потому что link = пустой.
Я сделал еще один простой цикл, который просто циклически перебирает ссылки в allLinks
, чтобы убедиться, что он их видит и работает, поэтому они загружаются.
Буду признателен за любую помощь, спасибо за все время.
Да, а Application.Wait
- временные, я заменю их на Do While
, когда этот парень начнет работать правильно.
Похоже, ссылка теряет свои свойства после нажатия кнопки на
wd.document.getElementById("btnAddItem").Click
Set allLinks = appIE.document.getElementById("tblItems").getElementsByTagName("a")
For Each link In allLinks
appIE.Navigate link
Application.Wait (Now + TimeValue("0:00:03"))
For Each wd In CreateObject("Shell.Application").Windows
If wd = "Internet Explorer" Then
If InStr(UCase(wd.document.Title), "ITEM") <> 0 Then
Application.Wait (Now + TimeValue("0:00:01"))
wd.document.getElementById("btnAddItem").Click
Application.Wait (Now + TimeValue("0:00:01"))
Exit For
End If
End If
Next wd
Next link
Мне просто нужно было закомментировать выход, потому что он выбивал из обоих циклов
Set allLinks = appIE.document.getElementById("tblItems").getElementsByTagName("a")
For Each link In allLinks
appIE.Navigate link
Application.Wait (Now + TimeValue("0:00:03"))
For Each wd In CreateObject("Shell.Application").Windows
If wd = "Internet Explorer" Then
If InStr(UCase(wd.document.Title), "ITEM") <> 0 Then
Application.Wait (Now + TimeValue("0:00:01"))
wd.document.getElementById("btnAddItem").Click
Application.Wait (Now + TimeValue("0:00:01"))
'Exit For
End If
End If
Next wd
Next link