2013-11-27 27 views
0

DataGridReservations是一個表格。我按行進行搜索。如何在網站表格上編寫多行的函數HTML

我的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 

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 
+1

您可以通過調用'的getElementsByTagName(‘TR’)返回'收集循環(忽略第一例)。例如。請參閱:http://stackoverflow.com/questions/15555513/get-all-td-from-tr-using-vba-code –

+0

對,我只是想也許有一種方法來寫2像公式x +1其中x是活動料號。然後循環訪問列表,直到我用完表格中的tr元素。 (1.e第一個循環將設置項目(2),第二個循環將設置項目(3)等) – TPJ87

+0

要重組,我還寫了這個問題 http://stackoverflow.com/q/ 20255214/3023445 – TPJ87

回答

1

如果你想通過行循環用計數器,可以像這樣做:

Set colRows = IE.Document.getElementById("DataGridReservations").getElementsByTagName("tr") 
For i = 0 to colRows.Length -1 
    Set xobj1 = colRows.Item(i) 
    'Your code 
Next 

The index sta rts在'0'。因此,違背了」。長度-1'

編輯,修訂如下問題:

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 = xobj1.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 
+1

你的內部...下一個 我可以設置xobj1 = colRows.Item(i)? – TPJ87

+0

當然可以。或_colRows(i)_。我應該寫的:) – Michael

+0

嗯。對象不支持屬性或方法。請參閱我的重寫問題 – TPJ87

相關問題