【发布时间】:2018-06-29 23:34:09
【问题描述】:
需要帮助。已经能够使用下面的代码打开并从网页中获取我需要的所有数据,但是它将它们全部放入一个单元格中,我似乎无法将数据分开。我希望能够将所有表格数据放入 excel 中,就好像它基本上是复制和粘贴的一样,或者将几个关键部分提取到特定的单元格中。
Dim objIe As Object
Set objIe = CreateObject("InternetExplorer.Application")
objIe.Visible = True
objIe.navigate "http://cctools/reports2/main.php"
While (objIe.Busy Or objIe.readyState <> 4): DoEvents: Wend
objIe.document.getElementById("submit").Click
Set xobj = objIe.document.getElementById("reportOut")
Sheet2.Range("A1") = xobj.innerText
Set xobj = Nothing
objIe.Quit
Set objIe = Nothing
End Sub
我试过了:
Sub Sample()
Dim objIe As Object
Dim TDelements As IHTMLElementCollection
Dim TDelement As HTMLTableCell
Set objIe = CreateObject("InternetExplorer.Application")
objIe.Visible = True
objIe.navigate "http://cctools/reports2/main.php"
While (objIe.Busy Or objIe.readyState <> 4): DoEvents: Wend
objIe.document.getElementById("submit").Click
Set xobj = objIe.document.getElementById("reportOut")
Sheet2.Range("A1") = xobj.innerText
r = 0
For Each TDelement In TDelements
'Look for required TD elements - this check is specific to VBA Express forum - modify as required
If TDelement.className = "data data3" Then
Sheet2.Range("A1").Offset(r, 0).Value = TDelement.innerText
r = r + 1
End If
Next
Set xobj = Nothing
objIe.Quit
Set objIe = Nothing
End Sub
然后得到一个
Run Time error '424' object required
我添加了:
Set TDelements = xobj.innerText
仍然得到相同的 424 错误。
这是我试图提取的数据中的 HTML 代码
<div id="reportOut">
<script type="text/javascript"></script>
<h2></h2>
<div class="bold font_2 large black"></div>
<table class="data data3" cellspacing="0">
<tbody>
<tr class="altrow"></tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>
81.52%
我正在尝试提取所有表数据或仅提取 81.52%
【问题讨论】:
-
对编码的任何帮助将不胜感激。已经尝试并知道各种其他方法来从网站获取数据以使其表现出色,但我很确定这是减少错误的最佳方法,也是我想为这个特定网页采用的方法。