'get the table based on the table’s id
Set ieDoc = ieApp.Document
Set ieTable = ieDoc.all.Item("contentBody")
'copy the tables html to the clipboard and paste to teh sheet
If Not ieTable Is Nothing Then
Set clip = New DataObject
clip.SetText "<table>" & ieTable.innerHTML & "</table>"
clip.PutInClipboard
Sheet1.Select
Sheet1.Range("A1").Select
Sheet1.PasteSpecial "Unicode Text"
End If
我玩过上面的代码,知道有更好的方法。 “contentBody”包括:
<div id="contentBody">
<div id="breadcrumb_navigation">
<ul class="nav nav-pills" style="margin-bottom: 0px;">
<h2 class="leftShim">Base Statistics</h2>
<div style="margin: 0px 15px 15px;">
<table class="table table-striped">
</div>
<br/>
<br/>
</div>
我想要的只是表<table class="table table-stripe">
但由于我缺乏知识,我不知道从哪里开始修剪多余的,或者我应该尝试另一种方法。
对于此示例,网站上的导航,搜索和面包屑会被拉入我的工作表。我在使用HTML标签之前抓取了数据,但是只有数据而不是整个表格而且我现在只是耸耸肩。
答案 0 :(得分:2)
基本上,您可以按标记名称获取项目,如此链接中所述:http://www.vbaexpress.com/forum/showthread.php?t=31831
Dim HTMLdoc As HTMLDocument
Dim TDelements As IHTMLElementCollection
Set HTMLdoc = ieApp.Document
Set TDelements = HTMLdoc.getElementsByTagName("table")
如果您愿意,可以列举以下项目:
Dim TDelement As HTMLTableCell
For Each TDelement In TDelements
'code-code-code-code-code
Next