1

次のようなテーブルを提供するテーブルへの Web クエリがあります。

     [C]                  [D]             [E]
[A] Events         |   IP source    | IP destination |
[B] MyEvent (1.10) |   192.168.0.1  | 192.168.0.3    |

情報を提供するHtmlコードは、このタイプのスキーマにあります:

<table class="wrapper">

<tbody>
  <tr>
   <td width="100%" valign="top"> 
    <center>
     <div id="contenpanel">

      <table id="contenttable" class="full_table_of_events">
        <tbody>
          <tr class="content" oncontextmenu="blablabla",( "src=192.168.0.1&dst=192.168.0.2")></tr>
          <tr></tr>
          <tr></tr>
        </tbody>
      </table>

     </div>
    </center>
   </td>
  <tr>
</tbody>

</table>

すっごく単純な c0de .innerText で値を取得できます。innerText からの完全な値は次のとおりです。

myEvent (1.10) 192.168.0.1 192.168.0.2

私は msgbox でこの値のクリスタル クリアを取得します。Excel にこの c0de があります。ワークシートにマウスを置いて、取得したもののキャプションを Label.form に与えます。イベント用の label.form の 1 つ、ソース IP 用、宛先 IP 用の 1 つがあり、その行が c0de でテーブルに存在するかどうかを確認しようとしましたが、何も起こりません。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Eventi.Caption = ActiveCell.Value
    Source.Caption = Cells(ActiveCell.Row, ActiveCell.Column + 1)
    Destination.Caption = Cells(ActiveCell.Row, ActiveCell.Column + 2)
End Sub

Sub Extract()    
    Dim URL As String
    Dim IE As InternetExplorer
    Dim HTMLdoc As HTMLDocument
    Dim TRelements As IHTMLElementCollection
    Dim TRelement As HTMLTableRow
    Dim Chkb0x As IHTMLElementCollection

    URL = "https://localhost/events/index.cgi"
    Set IE = New InternetExplorer

    With IE
        .navigate URL    
        .Visible = True

        While .Busy Or .readyState <> READYSTATE_COMPLETE: DoEvents: Wend

        Set HTMLdoc = .document
    End With

    Set TRelements = HTMLdoc.getElementsByTagName("TR")    
    MsgBox Eventi.Caption & " " & Source.Caption & " " & Destination.Caption
    MsgBox "Search Starting..."

    For Each TRelement In TRelements

        If Trim(TRelement.innerText) = Eventi.Caption & " " & Source.Caption & " " & Destino.Caption Then                       
            MsgBox "Bingo! You have this event"                       
        End If                      
    Next
End Sub

誰かが私が間違っていることを理解できることを願っています。これを行う方法があるかどうか知りたいだけです。

4

1 に答える 1