我现在对Excel更加熟悉,但有一点仍然让我困惑 - 如何通过循环遍历URL。我目前的难题是我有这个包的URL列表,需要使用它的HTML获取每个页面上每个包的状态。我目前在列表中有周期为:使用Excel VBA循环访问URL列表
Sub TrackingDeliveryStatusResults()
Dim IE As Object
Dim URL As Range
Dim wb1 As Workbook, ws1 As Worksheet
Dim filterRange As Range
Dim copyRange As Range
Dim lastRow As Long
Set wb1 = Application.Workbooks.Open("\\S51\******\Folders\******\TrackingDeliveryStatus.xls")
Set ws1 = wb1.Worksheets("TrackingDeliveryStatusResults")
Set IE = New InternetExplorer
With IE
.Visible = True
For Each URL In Range("C2:C & lastRow")
.Navigate URL.Value
While .Busy Or .ReadyState <> 4: DoEvents: Wend
MsgBox .Document.body.innerText
Next
End With
End Sub
我的目标在这里:
- 循环通过每个URL(以IE插件的网址,并保持不会打开新标签)
- 获取HTML元素中每个URL的项目状态
- FedEx:Delivered(td class =“status”)
- UPS:交付(ID = “tt_spStatus”)
- USPS:在USPS基金(类=“信息文本第一)
- 完成循环到达并保存为CSV如果可能的话(我已经做到了,所以我只是发布了我遇到问题的代码部分)。
我的理解是,我必须为每个不同的url编写不同的if语句,因为它们都具有不同的HTML标记以用于其递送状态。循环很简单,但循环浏览网页对我来说是新的。无论我做出什么样的改变,代码一直在向我抛出错误。
也许你应该发布你的错误和我们可以从那开始 –
@TylerCowan我已经把错误的图片t帽子发生。 – Tak
@Nathan_Sav我知道如何引用HTML和做网页抓取就好 - 它只是循环访问URL列表并引用每个我不确定的特定元素。 – Tak