需要一些帮助。已经能够使用下面的代码打开并从网页中获取我需要的所有数据,但它将所有数据放在一个单元格中,我似乎没有运气将数据分开。我希望能够将所有表数据转换为excel,就像它基本上是复制和粘贴一样,或者将几个关键的peices提取到特定的单元格中。
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%
答案 0 :(得分:1)
CSS选择器:
使用"b'29.20\r\n'"
的CSS选择器来获取表格
.data.data3
表示课程。由于您无法在querySelector
中使用复合类名,因此完整的类名已将"."
替换为" "
VBA:
"."
然后可以循环遍历表格的行以及每一行中的表格单元格。您分别使用Dim hTable as HTMLTable
Set hTable = objIe.document.querySelector(".data.data3")
和.getElementsByTagName("tr")
来获取它们。使用.innerText属性可打印出表格单元格的关联值。
答案 1 :(得分:0)
Excel可以在没有您帮助的情况下导入自己的数据。数据菜单 - 导入外部数据 - 新Web查询(Alt + D,D,W)。导入到您想要的位置(或只是您想要的表)。设置刷新选项。您的数据现在位于单元格中。
请记住:EXCEL是非程序员编写程序的工具。您应该在编程之前学习使用Excel。