0
我想从使用Excel VBA的网站中提取表格,但表格是使用JavaScript创建的,我真的不知道该怎么做。使用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,如果可能的话。
感谢您提供的任何帮助。
-Ryan
你想避免使用IE浏览器,但是使用Excel和VBA你完全没问题? –
您需要执行脚本来创建表格,所以您需要自动化IE或者找到其他方式来获得相同的结果。 –
忘记屏幕上显示的内容并找出JavaScript从中提取数据并直接使用它可能更合理。或者只是问一个该死的API的网站 - 如果没有API,它可能不希望你拉它的数据。 –