2016-06-13 10 views
0

次の表の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 

答えて

0

は答えを働いたし、すぐにそれを得ていないために愚か感じる:私が行に対して直接検索することができませんでしたどのようにこのシンプルでノーアイデア(0)だったこと

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(0).innertext = "TITLE" Then 
      PCR = tbl.Rows(0).Cells(1).innertext 
      If CR = PCR Then 
      'my code inserted 
      Exit For 
      End If 
     End If 
    Next 

本当に迷惑私のIfステートメントで.Cells(1)。あまりにも運がなければ複合化を試みた。ああ、論理的な問題解決の力!

関連する問題