2017-09-26 1 views
0

私は特定のウェブサイト(http://www.boxofficemojo.com/)にナビゲートし、ウェブサイトの検索バーに値を貼り付けるワークフローの自動化に取り組んでいます。私は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 それは私に "オブジェクトが必要です"というエラーを与えています。 私の全体のコードは次のとおりです。HTMLDivElement としてのHTMLDocument 薄暗いoSearchなどの新しいのInternetExplorer 点心ドクとして 薄暗いobjIE objIE .Visible = Trueの .Navigate "http://www.boxofficemojo.com/" で は、Whileを実行します。 4 objIE.Busy = trueまたはobjIE.ReadyState <>:DoEvents関数: 設定oSearch = Doc.getElementsByClassName( "nl_link")でループ 設定ドク= IE.Document エンド(3) など..... – n1xn1x

1

objIE.Document.getElementByName( "Q")。値=シート( "2016")。レンジ( "C3")。バリュー

私はあなたが「getElementsByNameを(使用したいと考えています)これは要素の集合を返す。最初の要素を仮定:

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

ありがとうございます!迅速なフォローアップとして、検索ボタンをクリックするとどうなりますか?検索ボタンのHTMLコードは です。 n1xn1x

関連する問題