我试图从一系列网址中抓取桌面内容。我一直在研究下面的代码,它执行以下步骤:
发生以下情况:
注意 - 该网站完全使用荷兰语;)
错误在哪里?
Sub TableExample()
Dim IE As Object, doc As Object
Dim strURL As String
Dim ws As Worksheet, wsActive As Worksheet
Dim i As Long, tabno As Long, nextrow As Long
Dim cell As Range
Dim MyNames As Range, MyNewSheet As Range
Dim tbl As Object, rw As Object, cl As Object
Set ws = Sheets("Start")
With ws
Dim rng As Range
Set rng = .Range("A1:A3")
For Each cell In rng
Sheets.Add.Name = cell.Value
Set wsActive = ThisWorkbook.ActiveSheet
strURL = "http://xxx&pagenumber=" & cell.Value
Set IE = CreateObject("InternetExplorer.Application")
With IE
'.Visible = True
.navigate strURL
Do Until .readyState = 4: DoEvents: Loop
Do While .Busy: DoEvents: Loop
Set doc = IE.document
With wsActive
For Each tbl In doc.getElementsByTagName("TABLE")
tabno = tabno + 1
nextrow = nextrow + 1
Set rng = wsActive.Range("B" & nextrow)
rng.Offset(, -1) = "Table " & tabno
For Each rw In tbl.Rows
For Each cl In rw.Cells
rng.Value = cl.outerText
Set rng = rng.Offset(, 1)
i = i + 1
Next cl
nextrow = nextrow + 1
Set rng = rng.Offset(1, -i)
i = 0
Next rw
Next tbl
End With
End With
Next
End With
IE.Quit
End Sub
答案 0 :(得分:1)
检查了你的代码并简单地完成了它,它对我有用。顺便说一句。 {-1}}表行单元格没有任何问题,它们是有效的对象。
for-each