如何解决如何编辑此获取请求 VBA 代码,使其不跳过行代码?
因此,这个使用 Get Request 方法抓取工作网站的 VBA 代码跳过了“For Each Div in Divs”之后的所有行,直接转到 end sub。纸张上未粘贴任何内容。这段代码是我使用 Internet Explorer 编辑的,这段代码可以很好地使用该方法,但速度很慢。有任何想法吗?这是代码。提前致谢!
Dim Table As IHTMLElement
Dim Tables As IHTMLElementCollection
Dim Div As IHTMLElement
Dim Divs As IHTMLElementCollection
Dim H3 As IHTMLElement
Dim TR As IHTMLElement
Dim TRs As IHTMLElementCollection
Dim TD As IHTMLElement
Dim TDs As IHTMLElementCollection
Dim Row As Integer
Dim Column As Integer
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Setup")
Row = 1
Column = 1
Set ws = Sheets("PROCESS")
ws.Cells.Clear
Dim H As Object,doc As New HTMLDocument
Set H = CreateObject("WinHTTP.WinHTTPRequest.5.1")
URL = "WORK URL"
Debug.Print URL
ReTry:
H.SetAutoLogonPolicy 0
H.setTimeouts 0,0
H.Open "GET",URL,True
H.send
H.waitForResponse
If H.Status <> 200 Then
MsgBox H.Status & " - " & H.statusText
Exit Sub
End If
Debug.Print URL
doc.body.innerHTML = H.responseText
Set Divs = doc.getElementById("secondaryProductivityList").getElementsByTagName("div")
For Each Div In Divs
Set H3 = Div.getElementsByTagName("h3")(0)
If Not Div.className = "floatHeader" And Not H3 Is Nothing Then
ws.Cells(Row,1).Value = H3.innerText
Row = Row + 1
Set Tables = Div.getElementsByTagName("table")
Set Table = Tables(0)
Set TRs = Table.getElementsByTagName("tr")
For Each TR In TRs
Column = 1
Set TDs = TR.getElementsByTagName("th")
For Each TD In TDs
ws.Cells(Row,Column).Value = TD.innerText
ws.Cells(Row,Column).Font.Bold = True
If TD.getAttribute("colspan") Then
Column = Column + TD.getAttribute("colspan")
Else
Column = Column + 1
End If
Next
Set TDs = TR.getElementsByTagName("td")
For Each TD In TDs
ws.Cells(Row,Column).Value = TD.innerText
Column = Column + 1
Next
Row = Row + 1
Next
End If
Row = Row + 1
Next
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。