升级到IE11后,带有Excel getElementById的VBA无效 - 获取运行时错误424

时间:2018-04-17 14:41:02

标签: excel vba getelementbyid

以下代码适用于旧版Internet Explorer,但在Windows 10和IE11上失败。我在下面的第一个getElementById命令上得到了运行时错误424。除了升级到IE11之外,代码中没有任何内容发生变化。有什么想法吗?

 Option Explicit

 Public Sub Get_Case_By_DateRange()

 Dim elems
 Dim e

    Do Until Not IE.Busy And IE.readyState = 4
        DoEvents
    Loop

   IE.document.getElementById("NewProperty").selectedindex = 51   <-- Fails 
   IE.document.getElementById("NewRelation").selectedindex = 5 

1 个答案:

答案 0 :(得分:0)

您需要确保声明并创建了IE个对象。下面是一个简单的示例,它应该向您展示如何使用后期绑定引用来实现它。

拥有该对象后,现在您可以导航到您的网站,或者找到已经打开的IE实例。为简单起见,我的示例显示了如何导航到它。

一旦您的IE对象引用您的URL,您就可以与它进行交互。

希望这有帮助!

 Public Sub GetCaseByDateRange()

    'Need to declare your IE object
    Dim IE As Object

    'Now set IE object to a new IntenetExplorer Application (Late Binding)
    Set IE = CreateObject("InternetExplorer.Application")

    On Error GoTo Catch
    IE.Visible = True
    IE.navigate "https://yourwebsite.com/"

    While IE.ReadyState <> 4 Or IE.Busy: DoEvents: Wend

    IE.document.getElementById("NewProperty").selectedindex = 51
    IE.document.getElementById("NewRelation").selectedindex = 5


    'CLOSE INSTANCE OF IE
Catch:
    IE.Quit
    Set IE = Nothing

End Sub