任何人都知道如何让宏(Excel VBA)在没有“下一步”按钮时停止(因此它应该抓取x个页面,直到“下一步”按钮值不再出现)。
有什么帮助吗?循环到e.Value <> "Next Results“为止
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我在某个地方读到,添加(下面)可能会有所帮助,尽管它对我来说还不起作用。
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发布于 2017-04-13 20:31:15
试试这个:
' FindNextButton()
Set allLinks = ie.getElementsByTagName("a")
For Each btn In allLinks
If btn.innerText = "Next"
btn.Click
Goto Here
Exit For
End If
Next btnhttps://stackoverflow.com/questions/43391507
复制相似问题