次の表のHTMLは次のとおりです。ウェブ検索ループ
<TABLE border="1" width="100%">
<TR class="row0">
<TD style="width: 30%"><strong>TITLE</strong></TD>
<TD style="width: 40%">UNIQUE</TD>
<TD style="width: 15%"><strong>BU Assigned</strong></TD>
<TD style="width: 15%">REMOVED</TD>
</TR>
<TR class="row1">
<TD style="width: 30%"><strong>Account Number</strong></TD>
<TD style="width: 40%">TARGET INFORMATION</TD>
<TD style="width: 15%"><strong>BU Logged</strong></TD>
<TD style="width: 15%">REMOVED</TD>
</TR>
<TR class="row0">
<TD style="width: 30%"><strong>3rd Party Reference</strong></TD>
<TD style="width: 40%">REMOVED</TD>
<TD style="width: 15%"><strong>Date Received</strong></TD>
<TD style="width: 15%">REMOVED</TD>
</TR>
<TR class="row1">
<TD style="width: 30%"><strong>Subject</strong></TD>
<TD style="width: 40%">REMOVED</TD>
<TD style="width: 15%"><strong>Date Logged</strong></TD>
<TD style="width: 15%">REMOVED</TD>
</TR>
<TR class="row0">
<TD style="width: 30%"><strong>Reason</strong></TD>
<TD style="width: 40%">REMOVED</TD>
<TD style="width: 15%"><strong>Last Action Date</strong></TD>
<TD style="width: 15%">REMOVED</TD>
</TR>
<TR class="row1" >
<TD style="width: 30%"><strong>Status</strong></TD>
<TD style="width: 40%">REMOVED</TD>
<TD style="width: 15%"><strong>Date Resolved</strong></TD>
<TD style="width: 15%">REMOVED</TD>
</TR>
</TABLE>
私は私がすべきと仮定し、「UNIQUE」を見つけるの後に「ターゲット情報を」プルしようとすると、ページ内のすべてのテーブルを検索していますRow(0).Cells(1)になりますが、これはランタイムエラー91 - Object VariableまたはWithブロック変数が設定されていません。
しかし、Row(0).Cells(0)が "TITLE"であると検索すると、コードがテーブルを検索して楽しく処理できます。誰もがこれを回避する方法を知っていますか?私は気づいていない空のセルがあった場合に備えて、セル番号を10に変更しようとしました。注:0,0が同じタイトルを持つ複数の表があります。唯一の固有のフィールドは、スプレッドシートから取得されたUNIQUEです。私が使用したコードは以下の通りです。
Private Sub test()
Dim IE As Object
Dim RowCnt As Integer
Dim CIS, AN, CR As String
RowCnt = 2
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
Do Until Workbooks("My Book").Worksheets("My Sheet").Range("A" & RowCnt).Value = ""
CIS = Workbooks("My book").Worksheets("My sheet").Range("C" & RowCnt).Value
IE.Navigate "First part" & CIS & "Second Part"
While IE.Busy
DoEvents
Wend
Dim tbls, tbl
Set tbls = IE.Document.getElementsByTagName("TABLE")
CR = Workbooks("My book").Worksheets("My sheet").Range("A" & RowCnt).Value
For Each tbl In tbls
If tbl.Rows(0).Cells(1).innertext = CR Then
AN = tbl.Rows(1).Cells(1).innertext
Exit For
End If
Next
RowCnt = RowCnt + 1
Loop
End Sub