2017-09-26 43 views
0

我正在自動化一個工作流程,從而導航到特定網站(http://www.boxofficemojo.com/)並將值粘貼到網站的搜索欄中。我無法與VBA中的網站搜索欄進行交互。將值粘貼到網站搜索欄VBA

搜索欄有以下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> 

代碼命令我現在似乎已經不奏效如下。我想將單元格c3的excel值粘貼到搜索欄中,然後提交。

objIE.Document.getElementByName("q").Value = Sheets("2016").Range("c3").Value 

任何想法?

回答

0

測試,這個工作對我來說:

Sub Test() 

    Dim IE As New InternetExplorer, Doc As HTMLDocument 
    Dim oSearch As HTMLDivElement 

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

    Set oSearch = Doc.getElementsByClassName("nl_link")(3) 
    Set oSearch = oSearch.getElementsByTagName("input")(0) 
    oSearch.Value = "test" 

    Doc.forms(0).submit 

End Sub 
+0

謝謝!作爲快速跟進,我將如何點擊搜索按鈕?搜索按鈕的HTML代碼是:* n1xn1x

+0

@ n1xn1x已更新的答案包括提交表單的方法。 –

+0

我與該代碼唯一的問題是以下行:Set Doc = IE.Document 它給我一個「對象需要」的錯誤..任何想法? 我的整個代碼是: 昏暗objIE作爲新的InternetExplorer 昏暗的文件作爲HTMLDocument的 昏暗oSearch作爲HTMLDivElement 隨着objIE 。可見=真 .Navigate 「http://www.boxofficemojo.com/」 做雖然objIE.Busy =真或者objIE.ReadyState <> 4:的DoEvents:迴路 設置文檔= IE.Document 結束隨着 集oSearch = Doc.getElementsByClassName( 「nl_link」)(3) 等..... – n1xn1x

1

objIE.Document.getElementByName( 「Q」)。值=表( 「2016」),範圍( 「C」)。價值

我相信你想使用「getElementsByName() 「它返回一組元素。假設第一個元素:

objIE.Document.getElementsByName("q")[0].Value = Sheets("2016").Range("c3").Value 
+0

謝謝!作爲快速跟進,我將如何點擊搜索按鈕?搜索按鈕的HTML代碼是: <* input type =「submit」value =「搜索...」> – n1xn1x