VBA将XML数据提取到Excel

关于VBA的一个棘手的问题请查看图片,以便您准确查看问题

如果您在Google上input“SEC EDGAR” 步骤1 ,并在公司search字段中inputBDX 第2步 单击search,然后在search结果中单击第一个文档button 第3步 你select10-K你到文件细节。 从那里selectXBRL实例文档 步骤4 。 最后在元素的XML文档里面 百万痛苦为我问题 就像你在最后一张照片中看到的那样,我们有这个元素,它就是名字。

有没有办法通过使用VBA拉这个东西,并把它放在我们偏好的Excel单元格? 我是VBA的初学者,所以请善待一点,也解释一下更多的代码,以及我们从VBE工具中添加的参考以及为什么。

我正在寻找的是一个代码块,它抓取XML元素之间的数据(**重要:XML实例文档应该位于提供的Web位置 。)**例如在<Current> 5 </Current)>东西,将拉5和填充代码块中指定的单元格和一些指令,所以我可以坚持下去,并研究代码****

这个问题是答案。 为了解决这个问题的答案,你必须在VBE工具上的Microsoft XML V6.0上进行转换 – >参考文献

您仍然应该尝试了解Microsoft XML Core Services(MSXML),但为了让您入门,您可以从以下开始,并根据需要进行修改。 如果你需要很多值,那么值得循环ChildNodesobjXMLNodexbrl因为许多节点似乎也被重复。

而不是在我的示例中使用<Current> ,我为us-gaap:DebtInstrumentInterestRateStatedPercentage使用了一个实际的值us-gaap:DebtInstrumentInterestRateStatedPercentage (您在问题中圈出的那个)

 Sub GetNode() Dim strXMLSite As String Dim objXMLHTTP As MSXML2.XMLHTTP Dim objXMLDoc As MSXML2.DOMDocument Dim objXMLNodexbrl As MSXML2.IXMLDOMNode Dim objXMLNodeDIIRSP As MSXML2.IXMLDOMNode Set objXMLHTTP = New MSXML2.XMLHTTP Set objXMLDoc = New MSXML2.DOMDocument strXMLSite = "http://www.sec.gov/Archives/edgar/data/10795/000119312513456802/bdx-20130930.xml" objXMLHTTP.Open "POST", strXMLSite, False objXMLHTTP.send objXMLDoc.LoadXML (objXMLHTTP.responseText) Set objXMLNodexbrl = objXMLDoc.SelectSingleNode("xbrl") Set objXMLNodeDIIRSP = objXMLNodexbrl.SelectSingleNode("us-gaap:DebtInstrumentInterestRateStatedPercentage") Worksheets("Sheet1").Range("A1").Value = objXMLNodeDIIRSP.Text End Sub