为什么我的Google搜索宏返回错误424-需要对象?

时间:2018-11-22 13:52:05

标签: html excel vba excel-vba web-scraping

我有这个简单的宏,可以打开IE并在搜索框中输入单词。它曾经在工作,但现在又回来了

  

错误424-必需的对象。

有什么想法吗?我缺少任何lib参考吗?

Sub AcessaPaginaDados()
    Dim xobj As HTMLDivElement
    Dim ie As Object

    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.Navigate ("https://www.google.com/")

    Do While ie.Busy Or ie.readyState <> 4
        DoEvents
    Loop

    Set xobj = ie.document.getElementById("lst-ib")
    Call xobj.setAttribute("value", "teste")        
End Sub

1 个答案:

答案 0 :(得分:1)

当我打开google时,该ID不会出现在输入框中。您可以使用attribute = value选择器来定位搜索框的title属性。右键单击检查搜索框,然后查看title =的本地语言属性值。在英国,该值为Search。使用任何本地值。

元素html:

enter image description here

其他

此外,.navigate2是首选方法。

如果页面加载缓慢,则可能需要循环直到出现元素。

Option Explicit

Public Sub AcessaPaginaDados()
    Dim xobj As HTMLDivElement

    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate2 "https://www.google.com/"

        While .Busy Or .readyState < 4: DoEvents: Wend

        Set xobj = .document.querySelector("[title=Search]")
        xobj.Value = "teste"

        Stop
        .Quit
    End With

End Sub