excel vba(Internet Explorer)错误424 for循环退出

在收集来自网站的数据时,我在Excel VBA的For循环结束时收到此错误。 所有的代码之前是完美的。

即使下面的代码给我的结果,但它只是给了我一个错误。

VBA错误424 ScreenShot

 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