VBA如果比较TR \ TD元素
我有一个networking查询表给我这样一个表:
[C] [D] [E] [A] Events | IP source | IP destination | [B] MyEvent (1.10) | 192.168.0.1 | 192.168.0.3 |
给我信息的Html代码就是这种types的模式:
<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
我确实抓住这个值cristal明确与msgbox,我有这个c0de在Excel中,它所做的是,看到你有工作表上的鼠标,并给一个Label.form你得到的标题,我有3 label.form的事件1,一个用于源IP和一个用于目标IP,我试着看看,如果我有一个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
那么我希望有人能看到我做错了我只是想知道是否有办法做到这一点。
一些debugging点:
- 遍历代码并手动检查每个
Trim(TRelement.innerText)
值的有效性。 - 确保
Eventi.Caption
值完全是“myEvent(x.xx)”,包括空格,括号和大小写。 - 我不熟悉
HTMLdoc.getElementsByTagName("TR")
,但确保它不区分大小写。 - 正如@Dick所build议的,使用
asc(mid(TRelement.innertext),8,1))
检查任何应该是spce的非空格,其中8是您认为空格的地方。 如果返回32以外的内容(ascii代表空格),那么在If
语句中将不会匹配。