首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任何人都知道如何让宏(Excel VBA)在没有下一步按钮时停止

任何人都知道如何让宏(Excel VBA)在没有下一步按钮时停止
EN

Stack Overflow用户
提问于 2017-04-13 19:48:43
回答 1查看 72关注 0票数 1

任何人都知道如何让宏(Excel VBA)在没有“下一步”按钮时停止(因此它应该抓取x个页面,直到“下一步”按钮值不再出现)。

有什么帮助吗?循环到e.Value <> "Next Results“为止

代码语言:javascript
复制
Sub Test()

       Dim ie As Object
       Dim i As Long
       Dim strText As String
       Dim doc As Object
       Dim hTable As Object
       Dim hBody As Object
       Dim hTR As Object
       Dim hTD As Object
       Dim tb As Object
       Dim bb As Object
       Dim tr As Object
       Dim td As Object

       Dim y As Long, z As Long, wb As Excel.Workbook, ws As Excel.Worksheet

         Set wb = Excel.ActiveWorkbook
         Set ws = wb.ActiveSheet

         Set ie = CreateObject("InternetExplorer.Application")
         ie.Visible = True

         y = 1   'Column A in Excel
         z = 1   'Row 1 in Excel
    variable = 0
    Here:

         ie.navigate "http://games.espn.com/ffl/tools/projections?&seasonTotals=true&seasonId=2016&slotCategoryId=0&startIndex=" & variable

         Do While ie.Busy: DoEvents: Loop
         Do While ie.ReadyState <> 4: DoEvents: Loop

         Set doc = ie.document
         Set hTable = doc.getElementsByClassName("playerTableTable tableBody")

         For Each tb In hTable

            Set hBody = tb.getElementsByTagName("tbody")
            For Each bb In hBody

                Set hTR = bb.getElementsByTagName("tr")
                For Each tr In hTR

                     Set hTD = tr.getElementsByTagName("td")
                     y = 1 ' Resets back to column A
                     For Each td In hTD
                       ws.Cells(z, y).Value = td.innerText
                       y = y + 1
                     Next td
                     DoEvents
                     z = z + 1
                Next tr
                Exit For
            Next bb
        Exit For
      Next tb

    variable = variable + 40
    GoTo Here:


      End Sub

我在某个地方读到,添加(下面)可能会有所帮助,尽管它对我来说还不起作用。

代码语言:javascript
复制
buttonFound = True
While buttonFound

Set allLinks = ie.getElementsByTagName("a")
buttonFound = False
For Each btn In allLinks
    If btn.innerText = "Next"
        buttonFound = True
        Set btnNext = btn
        Exit For
    End If
Next btn

btn.Click
End Sub
EN

回答 1

Stack Overflow用户

发布于 2017-04-13 20:31:15

试试这个:

代码语言:javascript
复制
' FindNextButton()
Set allLinks = ie.getElementsByTagName("a")
For Each btn In allLinks
    If btn.innerText = "Next"
        btn.Click
        Goto Here
        Exit For
    End If
Next btn
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43391507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档