【发布时间】:2017-09-13 15:12:08
【问题描述】:
所以由于限制,我需要用excel vba解析一些难看的html。 HTML 的问题在于它没有元素 ID。我有一个页面,其中有许多未标记的表,每个表都有几行。我唯一可以构建的是在我需要提取的一个单元格中有一个标识符。每次 ID“xtu_id”作为值出现在表格行的单元格中时,我都想从该行中提取数据。所以它看起来像这样:
<tr>
<td>
col1
</td>
<td>
col2
</td>
<td>
xtu_id
</td>
<td>
col4
</td>
</tr>
现在我看到 xtu_id 存在于该行中,我想将该行的所有单元格转储到 Excel 表中。这是我在阅读其他 stackoverflow 帖子时使用的:
Sub CommandButton1_Click()
Dim appIE As InternetExplorerMedium
Set appIE = New InternetExplorerMedium
With appIE
.Navigate "https://my_website"
.Visible = True
End With
Do While appIE.Busy Or appIE.ReadyState <> 4
DoEvents
Loop
Set mydata = appIE.Document.getElementsByTagName("tr")
For Each e In mydata
For Each c In e
If c.Cells().innerText Like "xtu_id" Then
myValue = c.Cells().innerText
MsgBox (myValue)
End If
Next c
Next e
Set appIE = Nothing
End Sub
此代码一直有效,直到我到达 [for each...] 语句,我无法循环遍历每一行的每个单元格以搜索“xtu_id”文本。关于如何做到这一点的任何想法?
【问题讨论】: