VBA + IE自动化-无法获得元素ID

问题描述 投票:1回答:2

我正在尝试从公司内部网站上抓取一些信息。我的代码能够启动新的IE窗口并成功导航到页面,但是当我尝试将数据输入到框中时,我总是会出错。

我根据已读过的帖子切换了各种方法,但总是会遇到一些错误。

对于下面发布的代码,这是最后一行的错误:

Object Variable or With Block Not Set

enter image description here

这是我的代码:

Sub PerformancePull()

    Dim appIE As Object
    Dim sURL As String
    Dim StartDate As Variant
    Dim MyDoc As HTMLDocument

    Set appIE = New InternetExplorerMedium


    sURL = "website"

    With appIE
        .navigate sURL
        .Visible = True
    End With

    Do While appIE.readyState <> READYSTATE_COMPLETE
        DoEvents
    Loop

    Set MyDoc = appIE.document

    Set StartDate = MyDoc.getElementById("ct100_assoc_tbEndDate")
    StartDate.Value = "3/25/2020"

End Sub

编辑:

这是一段HTML代码,用于标识我要捕获的ID:HTML SnipIt

vba internet-explorer getelementbyid
2个回答
0
投票

尝试以下操作

删除此

Set StartDate = MyDoc.getElementById("ct100_assoc_tbEndDate")
StartDate.Value = "3/25/2020"

并替换为此

With MyDoc
    .getElementById("ct100_assoc_tbEndDate").Value = "3/25/2020"
End With

0
投票

我试图从一边测试您的代码,它工作正常,没有任何错误。下面是测试结果。

enter image description here

我建议您尝试访问该元素并分配如下所示的值以检查其是否起作用。

appIE.document.getElementById("ct100_assoc_tbEndDate").Value = "3/25/2020"

如果问题仍然存在,请让我们知道您的测试结果,然后我们将尝试提供进一步的建议。

© www.soinside.com 2019 - 2024. All rights reserved.