繁体   English   中英

如何使用VBA将数据从XML转换为excel?

[英]How do I get data from XML into excel using VBA?

我是一名从事科学研究项目的高中学生。 尽管我对通用编程和逻辑有很好的了解,但我没有在Excel中进行编程的经验。 这是我的第一篇文章。

我已经对Google进行了彻底的搜索,但似乎找不到我想要的东西。 在这里,我只需要从此Web服务中获取海拔数据:hhttp://ned.usgs.gov/epqs/我需要知道的是如何使excel从xml这样的xml中获取内部文本: http:// ned .usgs.gov / epqs / pqs.php?x = -73.06&y = 40.8725&units = Feet&output = xml

到目前为止,这是我的代码:

    Sub elevgrabwebserv()

Dim Doc As HTMLDocument
Dim elev As String
Dim lat As String
Dim longt As String
Dim sht As Worksheet
Dim IE As New InternetExplorer
Set sht = ThisWorkbook.Worksheets("Both")

IE.Visible = False

lr = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row

For i = 3 To lr
If sht.Cells(i, 7) > 0 And IsEmpty(sht.Cells(i, 14)) Then

lat = sht.Cells(i, 7)
longt = sht.Cells(i, 8)

IE.navigate "http://ned.usgs.gov/epqs/pqs.php?x=" & longt & "&y=" & lat & "&units=Feet&output=xml"

Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Set Doc = IE.document

'here below is the problem
elev = Doc.getElementsByName("elevation").innerText

'from here parse the inner text to fit my needs



End If
Next i

End Sub

这是我需要获取的样本数据。 如您所见,我需要多次运行此Web服务,因此我的for循环

提前非常感谢您的帮助!

将VBA项目引用添加到库“ Microsoft VML v6.0”:

Sub Tester()
    Debug.Print Elevation(-73.06, 40.8725)
End Sub


Function Elevation(x, y)
    Dim http As New XMLHTTP60
    Dim doc As New MSXML2.DOMDocument60
    http.Open "GET", "http://ned.usgs.gov/epqs/pqs.php?x=" & x & _
                     "&y=" & y & "&units=Feet&output=xml"
    http.send
    doc.LoadXML http.responseText
    Elevation = doc.getElementsByTagName("Elevation")(0).nodeTypedValue
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM