VBA Excel在HTMLObject中获取文本

我知道这对你们中的一些人来说非常简单。 但是我一直在深入互联网,我找不到答案。 我需要得到公司内部的名字

tbody tr td a eBay-tradera.com

td class="bS aR" 970,80

/td /tr /tbody

 <tbody id="matrix1_group0"> <tr class="oR" onmouseover="onMouseOver(this, false)" onmouseout="onMouseOut(this, false)" onclick="onClick(this, false)"> <td class="bS">&nbsp;</td> <td> <a href="aProgramInfoApplyRead.action?programId=175&amp;affiliateId=2014848" title="http://www.tradera.com/" target="_blank"> eBay-Tradera.com </a> </td> <td class="aR"> <a href="/pan/aProgramInfoApplyRead.action?programId=175&amp;affiliateId=2014848" title="/pan/aProgramInfoApplyRead.action?programId=175&amp;affiliateId=2014848">175</a></td> <td class="bS aR">0</td><td class="bS aR">0</td><td class="bS aR">187</td> <td class="aR">0,00%</td><td class="bS aR">124</td> <td class="aR">0,00%</td> <td class="bS aR">26</td> <td class="aR">20,97%</td> <td class="bS aR">32</td> <td class="aR">60,80</td> <td class="aR">25,81%</td> <td class="bS aR">5&nbsp;102,00</td> <td class="bS aR">0,00</td> <td class="aR">0,00</td> <td class="bS aR"> 970,80 </td> </tr> </tbody> 

这是我的代码,在那里我只是试图得到一个标签开始,但我不能得到这个工作

 Set TDelements = document.getElementById("matrix1_group0").document.getElementsbytagname("a").innerHTML r = 0 C = 0 For Each TDelement In TDelements Blad1.Range("A1").Offset(r, C).Value = TDelement.innerText r = r + 1 Next 

事先感谢,我知道这可能是简单的。 但我希望其他人可能有同样的问题,这也会对他们有所帮助。 “r = r + 1”的原因是因为这个名单上有更多的公司。 我只是想尽可能地简单。 再次感谢!

您将需要指定表中的元素位置。 易趣似乎在混淆类名,所以我们不能依靠那些一致的。 我通常也不会依靠他们的表格索引的元素是一致的,但我没有看到任何解决方法。

我假设这是您正在search的HTML文档

 <tbody id="matrix1_group0"> <tr class="oR" onmouseover="onMouseOver(this, false)" onmouseout="onMouseOut(this, false)" onclick="onClick(this, false)"> <td class="bS">&nbsp;</td> <td> <a href="aProgramInfoApplyRead.action?programId=175&amp;affiliateId=2014848" title="http://www.tradera.com/" target="_blank"> eBay-Tradera.com <!-- <=== You want this? --> </a> </td> <!-- ... --> </tr> <!-- ... --> </tbody> 

我们可以忽略文档的其余部分,因为表格元素有一个ID。 总之,我们假设

 .getElementById("matrix1_group0").getElementsByTagName("TR") 

将返回按其外观sorting的html行对象的集合。

 Set matrix = document.getElementById("matrix1_group0") Set firstRow = matrix.getElementsByTagName("TR")(1) Set firstRowSecondCell = firstRow.getElementsByTagName("TD")(2) traderaName = firstRowSecondCell.innerText 

当然,你可以把这个全部当成

 document.getElementById("matrix1_group0").getElementsByTagName("TR")(1).getElementsByTagName("TD")(2).innerText 

但是这会使debugging更困难。 另外,如果网页以不同的格式呈现给您,那么这将不起作用。 Ebay故意让你难以从中获取数据,以确保安全。