2016-12-16 9 views
0

Webページ上のデータテーブルをナビゲートするためにVBA Excelを取得しようとしています。 Webページが1ページ目に開きます.Webページ番号をVBA Excelコードで更新できます。 (少なくともそれは動作しているように見えます) しかし、私は要求されたページに適用されるデータを画面に表示することはできません。マウスでページドロップダウンボタンをクリックすると、ボタンが「死んだ」ように見えます。私は正常に別のページをマウスでOKを選択することができますし、Excel VBAで選択しようとしたページ番号を選択することもできます。 私はIEを使用しています。私はディスパッチイベントを使用すると信じているバージョン11。 私は成功していないネット上で研究したあらゆる種類の技を試してきました。 次のコードは私の最新の試みです。私よりも経験豊富な人が助けてくれることを願っています。前もって感謝します。WebページをVBA Excelから要求されたページに移動させることができない理由

Sub ExtractTablesData() 

    Dim IE As Object 
    Dim obj As Object 
    Dim elemCollection As Object 
    Dim evt 

    Set IE = CreateObject("InternetExplorer.Application") 

    With IE 
     .Visible = True 
     .navigate ("http://My Web Page") 

     While IE.readystate <> 4    ' wait for pages to download 
     DoEvents 
     Wend 

     Do While IE.busy: DoEvents: Loop  ' make sure page has downloaded 
     Set elemCollection = IE.Document.getelementsbytagname("TABLE") 

     Set evt = IE.Document.createEvent("HTMLEvents") 
     evt.initEvent "change", False, True 

     IE.Document.getElementsbyClassName("pager-select")(0).selectedIndex = 5 
            ' trying to get the 6th page of data 

     IE.Document.getElementsbyClassName("pager-select")(0).Click 
     IE.Document.getElementsbyClassName("pager-select")(0).dispatchEvent (evt) 

     Application.Wait (Now + TimeValue("0:00:02")) 

     Do While IE.busy: DoEvents: Loop ' make sure page has downloaded 

     While IE.readystate <> 4   ' wait for pages to download 
     DoEvents 
     Wend 

    End With ' IE 

答えて

0

Had True False reversed。 別のWebページで誤って正解が見つかりました。 魅力的な作品です。

evt.initEvent "change"、True、False

関連する問題