excel vba(Internet Explorer)错误424 for循环退出
在收集来自网站的数据时,我在Excel VBA的For
循环结束时收到此错误。 所有的代码之前是完美的。
即使下面的代码给我的结果,但它只是给了我一个错误。
y = 5 total = html.getElementsByTagName("table")(3).Children(0).Children.Length For i = 0 To total Worksheets("FS Summary").Range("A" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(0).Children(0).innerText Worksheets("FS Summary").Range("B" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(1).Children(0).innerText Worksheets("FS Summary").Range("C" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(2).Children(0).innerText Worksheets("FS Summary").Range("D" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(3).Children(0).innerText Worksheets("FS Summary").Range("E" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(4).Children(0).innerText Worksheets("FS Summary").Range("F" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(5).Children(0).innerText Worksheets("FS Summary").Range("G" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(6).Children(0).innerText Worksheets("FS Summary").Range("H" & y).Value = html.getElementsByTagName("table")(3).Children(0).Children(i).Children(7).Children(0).innerText y = y + 1 Next i
请告诉我如何解决这个问题。
如果(例如) Children.Length
是5,那么你的i
循环应该从0到4(即total - 1
),因为没有Children(5)
此外,您的代码将受益于一些简单的重构:
Dim y, ch, Total, i y = 5 Set ch = html.getElementsByTagName("table")(3).Children(0).Children Total = ch.Length For i = 0 To Total-1 With Worksheets("FS Summary") .Range("A" & y).Value = ch(i).Children(0).Children(0).innerText .Range("B" & y).Value = ch(i).Children(1).Children(0).innerText .Range("C" & y).Value = ch(i).Children(2).Children(0).innerText .Range("D" & y).Value = ch(i).Children(3).Children(0).innerText .Range("E" & y).Value = ch(i).Children(4).Children(0).innerText .Range("F" & y).Value = ch(i).Children(5).Children(0).innerText .Range("G" & y).Value = ch(i).Children(6).Children(0).innerText .Range("H" & y).Value = ch(i).Children(7).Children(0).innerText End With y = y + 1 Next i