为什么我无法通过VBA Excel将我的网页跳转到所请求的页面

时间:2016-12-16 03:53:58

标签: excel-vba web vba excel

我正在尝试让VBA Excel通过网页上的数据表进行导航。 该网页将在第1页打开。我可以使用VBA Excel代码更新网页编号。 (至少看起来它的工作。) 但我似乎无法获取适用于我请求的页面的数据显示在屏幕上。如果我用鼠标点击下拉页面按钮,按钮似乎已经死了"。我可以用鼠标OK成功选择另一个页面,然后我可以选择我尝试用Excel VBA选择的页码。 我正在使用IE浏览器。版本11我相信使用调度事件。 我一直在尝试各种各样的技巧,我在网上研究没有成功。 以下代码是我最近的尝试。我希望有比我更多经验的人可以提供帮助。提前谢谢。

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

1 个答案:

答案 0 :(得分:0)

真假被逆转了。 在另一个网页上意外找到正确答案。 现在就像一个魅力。

evt.initEvent&#34;更改&#34;,True,False