Excel VBA-GetElementByID,未设置对象变量或带有块变量的

时间:2018-10-27 04:32:40

标签: excel vba excel-vba

因此,通过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 :(得分:0)

蒂姆·威廉姆斯(Tim Williams)的代码有效,然后您必须进一步挖掘。您要使用

<tr> 

在您的情况下,然后添加选择Dim,但我只是在学习,Tim从那里带我们去,我和OP希望与我的另一篇文章Extract scrape after browser is open

相同