首页 文章

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

提问于
浏览
0

我试图让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

    如果真假则逆转了 . 在另一个网页上意外地找到了正确的答案 . 现在就像一个魅力 .

    evt.initEvent“change”,True,False

相关问题