【发布时间】:2018-06-26 07:02:40
【问题描述】:
我正在尝试将 html 表中的数据写入我在 VBA 中创建的二维数组“htmlArr”。我可以让它使用 2 个 for 循环填充第一行数据(所有正确的列条目都经过),但是代码在此之后发生故障,并且不会移动到下一个 j 以将数据写入第二行。
这是填充数组的 VBA 代码部分:
eleColtr.Length = 11 & numberofColumns.length = 23
ReDim htmlArr(0 To (eleColtr.Length - 1), 0 To (numberofColumns.Length - 1)) 'set array dimensions 11 rows by 23 columns
For j = LBound(htmlArr, 1) To UBound(htmlArr, 1) 'loop through rows dim 0 - 10 (html table indexes)
Set ObjTr = oHTML.getElementsByTagName("tr")(j)
For k = LBound(htmlArr, 2) To UBound(htmlArr, 2) 'loop over cols 0 - 22 (html table indexes)
htmlArr(j, k) = ObjTr.getElementsByTagName("td")(k).innerText
Next k
Next j
谁能看到我哪里出了问题以及如何解决这个问题?
我试图添加一个计数器,但我不确定它会去哪里
感谢您的帮助
【问题讨论】:
-
你检查
LBound(htmlArr, 1)和UBound(htmlArr, 1)的值了吗? -
获取
j-loop 内部但k-loop 外部的元素:set objTr = oHTML.getElementsByTagName("tr")(j)。然后在此行之后放置一个断点并将objTr添加到监视列表中。还要检查eleColtr.Length和numberofColumns.Length的值。理想情况下,编辑您的问题并告诉我们它们是什么。 -
嗨,我添加了 objTr 变量,发现它有 22 项而不是 23 项,因此列数不匹配导致错误!
-
现在全部排序 - 感谢您的帮助
-
@Izzy888 不客气。您可能想为您的问题添加一个答案,然后接受它,一旦可以。
标签: html arrays vba excel html-table