该表的 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 or With块变量未设置。
然而,当我搜索 Row(0).Cells(0) 为“TITLE”时,代码将找到该表,我可以愉快地继续。有人知道解决这个问题的方法吗?我尝试将单元格编号一直更改为 10,以防万一有一些我没有注意到的空单元格。注意:很可能有多个表,其中 0,0 具有相同的标题,唯一的唯一字段是从我的电子表格中获得的 UNIQUE。
找到了答案,但因为没有立即得到答案而感到愚蠢:
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 语句直接搜索 Rows(0).Cells(1) 。
完整代码:
Private Sub test()
Dim IE As Object
Dim RowCnt As Long
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)