【发布时间】:2013-12-12 13:50:27
【问题描述】:
DataGridReservations 是一个表。我正在按行搜索。
我的 VBA 适用于一排。有没有办法循环这个 VBA 代码来搜索表中的每一行?也许通过为每个循环将 xobj1 = .... 中的 Item(2) 增加 1?
Dim xobj1 As Object
Set xobj1 = IE.Document.getElementById("DataGridReservations").getElementsByTagName("tr").Item(2)
Set xobj1 = xobj1.getElementsByTagName("td")
If Range("B1").Text = xobj1.Item(9).innertext Then
Range("H" & (ActiveCell.Row)) = xobj1.Item(3).innertext
Else
Range("H" & (ActiveCell.Row)) = "0"
End If
评论后重写
我现在得到一个对象不支持属性或方法
Dim xobj1 As Object
Dim xobj2 As Object
Dim colRows As Object
Set colRows = IE.Document.getElementById("DataGridReservations").getElementsByTagName("tr")
For i = 0 To colRows.Length - 1
Set xobj1 = colRows.Item(i)
Set xobj2 = colRows.getElementsByTagName("td")
If Range("B1").Text = xobj2.Item(9).innertext Then
Range("H" & (ActiveCell.Row)) = xobj2.Item(3).innertext
Else
Range("H" & (ActiveCell.Row)) = "0"
End If
Next
【问题讨论】:
-
您可以遍历调用
getElementsByTagName("tr")返回的集合(忽略第一个实例)。例如。见:stackoverflow.com/questions/15555513/… -
对,我只是在想也许有一种方法可以将 2 写成 x+1 这样的公式,其中 x 是活动项目编号。并循环遍历列表,直到我用完表中的 tr 元素。 (1.e 第一个循环会设置 item(2),第二个循环会设置 item(3),等等)
-
为了重新整理,我也写了这个问题stackoverflow.com/q/20255214/3023445
标签: html vba excel html-table