我正在尝试使用 VBL 将下表中的一些信息提取到 Excel 中,但没有成功。我需要的值似乎没有分配给它的任何元素 ID、标签名称或类名称。我在同一行 (01:15) 的燃料使用值 (89218) 和时间值之后。关于如何从表中抓取值,或如何从特定 TR、TD 中提取数据,谁能给我指出正确的方向。
表格的HTML来源:
<h3>Airbus A300-600-PW4158 Fuel Planner</h3>
<p>London to Chicago EGKK-KORD (3441 NM)<br /></p>
<h2>Total Fuel: 101901 POUNDS</h2>
<table width="100%" border=1>
<tr>
<th style="text-align:left;"> </th>
<th style="text-align:left;">Fuel</td>
<th style="text-align:left;">Time</th>
</tr>
<tr>
<td>Fuel Usage</td>
<td>89218</td>
<td>08:47</td>
</tr>
<tr>
<td>Reserve Fuel</td>
<td>12682</td>
<td>01:15</td>
</tr>
<tr>
<td>Fuel on Board</td>
<td>101901</td>
<td>10:02</td>
</tr>
</table>
非常感谢。
最佳答案
CSS 选择器:
在看不到更多 HTML 的情况下,您可以对显示的代码段使用以下 CSS 选择器选择器:
tr td:nth-child(2)
tr td:nth-child(3)
使用 CSS 选择器,这将带回所有 2 或 3 个带有 tr
的子 td
的节点列表。
例如:
您可以通过索引访问 nodeList 中的单个元素。
VBA:
vba 中的整体语法类似于:
.document.querySelectorAll("tr td:nth-child(2)")(0).innerText
或者可能是
.document.querySelectorAll("tr td:nth-child(2)").Item(0).innerText
0
是假设的。您需要检查完整的 HTML 以确定要使用的正确索引。
.document
innerHTML 可以使用 IE 从 .responseText
填充,例如,导航到页面。
关于html - 从表格中抓取 Excel VBA Web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325721/