Нажатие на ссылку через Excel VBA - getElementsByTagName не работает - PullRequest
0 голосов
/ 19 сентября 2019

Я видел эту манеру Excel VBA раньше, но, к сожалению, она мне не подходит.Я использую Excel 2016 и пытаюсь перейти на внутренний веб-сайт и щелкнуть ссылку, чтобы начать загрузку файла и сохранить его на своем рабочем столе, но, к сожалению, код, который я видел, «щелкает»ссылка не работает.

Пожалуйста, смотрите код ниже:

Sub Downloader()
    Dim Browser As Object
    Dim Website As String
    Dim LinkList As Object
    Set Browser = CreateObject("InternetExplorer.Application")
    Website = "http://website.com/thingamajig.html"
    With Browser
        .Visible = True
        .navigate Website
        For Each X In .document.getElementsByTagName("a")
            If X.Title = "Link to Change Reports" Then
                X.Click
                Exit For
            End If
        Next
    End With
End Sub

Код работает до тех пор, пока строка не начнет искать каждый X ... После этого яполучить сообщение об ошибке:

Ошибка времени выполнения '-2147467259 (80004005)': Ошибка автоматизации Неуказанная ошибка *

1 Ответ

1 голос
/ 20 сентября 2019

Вы должны оставить некоторое время для полной загрузки перемещаемого документа, прежде чем начинать поиск по ссылкам.

Добавьте следующие отмеченные строки в свой код между указанными строками:

    ....
    .navigate Website 'after this line

    Do While Browser.Busy = True Or Browser.readyState <> 4
        DoEvents
    Loop

    For Each X In .document.getElementsByTagName("a") 'before this line
    ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...