excel VBA google search

lhcgjxsq  于 2023-04-22  发布在  Go
关注(0)|答案(2)|浏览(89)

我正在学习使用Excel VBA自动化谷歌搜索与我的代码如下所示.然而,我总是遇到'运行时错误424:我已经声明了searchtxt作为我的对象,但错误仍然发生。我试图删除searchtxt对象声明,但它仍然不起作用。有人可以帮助我纠正我的代码错误,以便我可以在vba中进行谷歌搜索。谢谢

Sub google_search()
Dim searchtxt As Object, myie As Object

Set myie = CreateObject("internetexplorer.application")
With myie
    .Visible = True
    .Navigate "https:\\www.google.com"
    Do While .Busy
        DoEvents
    Loop
    Do While .readystate <> 4
        DoEvents
    Loop
End With

Set searchtxt = myie.document.getelementbyid("q")  'error occured here
Set searchtxt.Value = "excel vba"
myie.document.forms(0).submit

End Sub
hmmo2u0o

hmmo2u0o1#

您不需要在Google页面上填写搜索表单并按提交。您只需使用搜索词进行导航:

.Navigate "https://www.google.com/search?q=your search term"
wz3gfoph

wz3gfoph2#

Sub InternetExplorer()

Dim ie As Object
Dim searchtxt As Object
Dim searchres As Object

Set ie = CreateObject("InternetExplorer.application")
   With ie
    .Visible = True
    .navigate "https://www.google.co.in"

    Do While .busy
        DoEvents
    Loop

    Do While .readystate <> 4
        DoEvents
    Loop

    Set searchtxt = .document.querySelector("input[name='q']")

    searchtxt.Value = "Shaktman"

   .document.forms(0).submit
    End with

    End sub

'getElementById'方法用于通过其唯一ID属性选择元素,该属性在整个HTML文档中应该是唯一的。但是,Google搜索框没有ID“q”,而是具有名称属性“q”,该属性不是唯一的,可以由同一页面上的多个元素使用。
要选择具有特定name属性的元素,可以使用带有属性选择器的querySelector方法。在本例中,可以使用属性选择器[name='q']选择name属性为“q”的输入元素。因此,上面的代码在InternetExplorer中执行是正确的

相关问题