我对VBA相当陌生/没有经验,而且(貌似)距离完成一个踢了我屁股的项目仅一步之遥。对于某些背景,我正在抓取一个网站并导航到适当的“ tbody”标签,然后遍历包含的“ tr”标签。在每个tr中,我期望有两个“ td”单元格。问题是第一个tr的“ th”标签的colspan为2,这意味着该tr中显然只有一个孩子,并且代码崩溃了。我尚不知道该怎么做的是跳过或解释第一个tr中的异常。这是相关代码段:
R = 1
For Each ele In IE.Document.getElementsByTagName("tbody")(13).getElementsByTagName("td")
WSW.Range("H" & R).Value = ele.Children(0).textContent
WSW.Range("I" & R).Value = ele.Children(1).textContent
R = R + 1
Next
不确定我是否已经迷路了,是否可以挽救代码,或者是否应该重新创建代码本节的内容。感谢您的任何帮助。
答案 0 :(得分:2)
基于 n 的getElementsByTagName索引为零,而基于 n 的计数(即.length)为1。您将R用作索引参考,因此它具有双重功能。
dim R as long
R = 1
For R=1 to IE.Document.getElementsByTagName("tbody")(13).getElementsByTagName("td").length -1
with IE.Document.getElementsByTagName("tbody")(13).getElementsByTagName("td")(R)
WSW.Range("H" & R).Value = .Children(0).textContent
WSW.Range("I" & R).Value = .Children(1).textContent
end with
Next R