Excel VBA - GetElementByID дает переменную объекта или переменная блока не установлена - PullRequest
0 голосов
/ 27 октября 2018

так что я определенно вытащил из воды доступ к VBA за пределами Excel, в котором я его запускаю, и я довольно застрял с этим.

Я пытаюсьавтоматизировать заполнение формы в IE (форма находится во всплывающем окне, которое уже должно быть открыто и может быть открыто только в IE, поэтому я не могу создать окно, затем перейти к нему или использовать Chrome).Из того, что я искал, самое близкое, что я нашел, - это то, что может искать в открытых окнах и проверять заголовки на предмет соответствия.

Debug.Print (wind.Document.Title)

работает нормально, но

wind.Document.GetElementByID("x").Value = "BOA"

выдает ошибку во время выполнения (переменная объекта или переменная блока не установлена)

 Dim noURL As Boolean
noURL = True
Dim windDoc As Object

If url_T.Value = "" Then
    MsgBox "No URL provided"
    Exit Sub
Else
    For Each wind In CreateObject("Shell.Application").Windows
        If wind = "Internet Explorer" Then
            If InStr(UCase(wind.Document.Title), UCase(url_T.Value)) <> 0 Then
                noURL = False
                Exit For
            End If
        End If
    Next wind

    If noURL = True Then
        MsgBox "No window located"
        Exit Sub
    End If
End If

wind.Visible = True
Debug.Print (wind.Document.Title)
wind.Document.GetElementByID("txtIncidentDescription").Value = "BOA"   

Вот DOM-представление элемента, который мне нужен (кто-нибудь знает лучший способ копирования этого представления в IE?)

https://imgur.com/a/yrUSdob

1 Ответ

0 голосов
/ 20 июня 2019

Код Тима Уильямса работает, тогда вам придется прятаться дальше. Вы хотите использовать

<tr> 

в вашем случае, затем добавьте выделение Dim, но я только учусь, Тим забирает нас оттуда, я и ОП хотим то же самое, что и в моем другом посте, Извлечение скраба после открытия браузера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...