我正在尝试使用 Excel VBA 从网站中提取表格,但该表格是使用 JavaScript 创建的,我真的不知道该怎么做。
通常,我提取一个类似这样的表:
Dim Document As Object
Dim StatementTable As HTMLTable
Set Document = CreateObject("HTMLFile")
With CreateObject("msxml2.xmlhttp")
.Open "GET", Url, False
.send
Do: DoEvents: Loop Until .readyState = 4
Document.body.innerHTML = .responseText
.abort
End With
Set StatementTable = Document.getElementById("TableID")
With StatementTable
For r = 0 To .Rows.Length - 1
For c = 0 To .Rows(r).Cells.Length - 1
Sheets(Destination).Cells(r + 1, c + 1).Value = .Rows(r).Cells(c).innerText
Next c
Next r
End With
我尝试在此链接上做类似的事情:
http://financials.morningstar.com/income-statement/is.html?t=JPM®ion=USA&culture=en-US
但是,正如我所说,该表是使用 JavaScript 创建的,而不是 HTML 文件中的本机。
我浏览了源代码,似乎创建表的 JavaScript 在 HTML 文件的第 238-242 行中执行:
<script type="text/javascript">
var print4com = false
SRT_stocFund.LoadAComponent("sfcontent", "JPM", "is", "en-US","USA", "", "usa", null,{showSubTab: false}, {refresh:"", urlAppendix:"&t=XNYS:JPM®ion=usa&culture=en-US&cur=USD"});
var ops = "";
</script>
不过,我只是不知道如何将其加载到 VBA 并将其导入 Excel。
另外,如果可能的话,我想避免使用 Internet Explorer。
感谢您的任何帮助,您可以提供。
-瑞安