HTML搜索栏单击excel

时间:2017-10-10 18:27:17

标签: html excel vba

我真的很难尝试编写一段VBA代码并且真的可以使用一些帮助!我想导航到特定网站(http://www.boxofficemojo.com/),在搜索栏中键入一个值,然后点击"搜索"。我无法让我的代码正确点击搜索按钮。

这是我到目前为止所做的:

Dim objIE As New InternetExplorer 
Dim Doc As HTMLDocument
Dim oSearch As HTMLDivElement
Dim oSearchButton As Object
Dim SearchElement As MSHTML.IHTMLElementCollection
Dim oResult As Object, Element As Object, myLink As Object

With objIE
    .Visible = True
    .Navigate "http://www.boxofficemojo.com/"
        Do While objIE.Busy Or objIE.ReadyState <> 4
            DoEvents
        Loop
    Set Doc = objIE.Document
End With

Set oSearch = objIE.Document.forms("searchbox").elements("q")
    oSearch.Value = Sheets("2016").Range("c3").Value
Set oSearchButton = objIE.Document.forms("searchbox").getElementsByTagName("input")

    objIE.Navigate oSearchButton

现在,我的代码只需导航到谷歌搜索:[object HTMLInputElement]

搜索按钮的HTML如下:

<form name="searchbox" action="/search/q.php" method="POST">
    <input name="q" style="width: 90px; font-weight: bold;" type="text"><br>
    <input type="submit" value="Search..."></form>
**<input type="submit" value="Search...">**

有谁知道我做错了什么?非常感谢你!

1 个答案:

答案 0 :(得分:1)

两件事。 正如评论中所提到的,getElementsByTagName返回多个对象。在您的情况下,您想要引用第二个,如下所示: objIE.Document.forms("searchbox").getElementsByTagName("input")(1)

其次,Navigate只是将IE带到网址。你想点击按钮这样做: objIE.Document.forms("searchbox").getElementsByTagName("input")(1).Click