DataGridReservations - это таблица. Я выполняю поиск по строке.Как написать, если функция для более чем одной строки в таблице веб-сайта HTML
Мой VBA работает в течение одной строки. Есть ли способ закодировать этот код VBA для поиска каждой строки в таблице? Может быть, увеличив Item (2) в xobj1 = .... на 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
REWRITE ПОСЛЕ КОММЕНТАРИИ
Я теперь получаю объект не поддерживает свойство или метод
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") '(не обращая внимания первый экземпляр). Например. см. http://stackoverflow.com/questions/15555513/get-all-td-from-tr-using-vba-code –
Правильно, я просто подумал, может быть, был способ написать 2 как формулу типа x +1 где x - номер активного элемента. и просто прокрутите список до тех пор, пока я не выйду из трёх элементов в таблице. (1.e в первом цикле будет задан пункт (2), второй цикл установит элемент (3) и т. Д.) – TPJ87
Чтобы реорганизовать, я также написал этот вопрос http://stackoverflow.com/q/ 20255214/3023445 – TPJ87