VBA автоматизировать IE: element.click и element.FireEvent (OnClick) не работает - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь проанализировать сводную таблицу на основе Интернета. К сожалению, мне нужно расширить дополнительные строки в сводной таблице на основе Интернета, чтобы получить доступ ко всем нужным мне данным. Я думаю, что когда я нажимаю на знак +, чтобы развернуть дополнительные строки, скрипт загружает дополнительные данные из базы данных.

В любом случае, вот HTML-код знака +:

<DIV class="clip9x9 di-img" onclick=_Ewa.Gim.tpdfce(event);>
    <INPUT title=Expand class=ewaboot_expand type=image alt=Expand src="http://...">
</DIV>

Мне удается получить правильный элемент в переменную, используя IE.document.getElementsByTagName("Div") и цикл If Loop (по какой-то причине GetElementByClassName может вызвать сбой в моем IE), но ни один из методов .Click или .FireEvent (OnClick) не работает. Я также попробовал оба метода на элементе ввода ниже DIV, и они тоже не работают. Вот код

Sub Test()
    Dim IE As InternetExplorer
    Dim div As Variant
    Dim Obj As Variant
    Dim WebUrl As String

    WebUrl = "http://..../filename.aspx"
    Set IE = New InternetExplorerMedium
    Sleep 1000
    IE.Visible = True
    IE.navigate WebUrl
    Do While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
        Sleep 1000
    Loop

    Set div = IE.document.getElementsByTagName("Div")

    For Each Obj In div
        If Obj.className = "clip9x9 di-img" Then
            Obj.Click
            Obj.FireEvent ("OnClick")
        End If
    Next i
End Sub

Когда я смотрю на атрибут onclick моего элемента Obj в Thy Window (редактор VBA), свойство onclick имеет знак +, и при проверке внутри него никакая переменная не присваивается. Я нахожу это странным, так как HTML-код указывает value =”_Ewa.Gim.tpdfce(event);”, что, как я считаю, относится к сценарию, расширяющему строку сводной таблицы.

Любая помощь будет высоко ценится

...