将Htmlstring转换为HTMLDocument VBA

我正在写一个macros来获取雅虎当前的汇率,但我无法将HTMLstring转换为HTMLDocument,以便通过idsearch所需的元素。 这是我的代码到目前为止,但它在debug.print行上失败。

Public Sub Forex(currency1 As String, currency2 As String) Dim oXHTTP As Object Dim doc As HTMLDocument Dim url As String Dim html As String Dim id As String Set oXHTTP = CreateObject("MSXML2.XMLHTTP") url = "http://finance.yahoo.com/q?s=" & currency1 & currency2 & "=X" oXHTTP.Open "GET", url, False oXHTTP.send html = oXHTTP.responseText Set oXHTTP = Nothing Set doc = New HTMLDocument doc.body.innerHTML = html id = "yfs_l10_" & currency1 & currency2 Debug.Print doc.getElementById("id").innerText End Sub 

我在这里错过了什么?

我正在使用excel-vba-http-request-download-data-from-yahoo-finance的方法 :

 Sub Forex(currency1 As String, currency2 As String) Dim url As String, html As String, id As String Dim oResult As Variant, oLine As Variant, sRate As String url = "http://finance.yahoo.com/q?s=" & currency1 & currency2 & "=X" id = "<span id=""yfs_l10_" & currency1 & currency2 & "=x"">" html = GetHTTPResult(url) oResult = Split(html, vbLf) For Each oLine In oResult If InStr(1, oLine, id, vbTextCompare) Then sRate = Split(Split(oLine, "<span id=""yfs_l10_audusd=x"">")(1), "</span>")(0) Exit For End If Next End Sub Function GetHTTPResult(sURL As String) As String Dim XMLHTTP As Variant, sResult As String Set XMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") XMLHTTP.Open "GET", sURL, False XMLHTTP.send sResult = XMLHTTP.responseText Set XMLHTTP = Nothing GetHTTPResult = sResult End Function 

你几乎在那里,你只是有错的ID:

 id = "yfs_l10_" & currency1 & currency2 & "=X" Debug.Print doc.getElementById(id).innerText