2016-08-02 63 views
0

我有一个responseText从XMLHTTP请求:如何访问通过XMLHTTP请求创建HTML文件文档

Set XMLHttp = CreateObject("MSXML2.XMLHTTP") 
XMLHttp.Open "GET", urlPiece, False 
XMLHttp.send 

,我存储在内存中创建一个HTML文件:

Set htmlResponse = CreateObject("htmlfile") 
htmlResponse.body.innerHTML = XMLHttp.responseText 

如果我看调试器上的对象htmlResponse,我看到一个正常的HTML文件的结构。但是,当我尝试获取文档时,我不成功:

Set doc = htmlResponse.document '<-- Invalid method or property 

我在做什么错了?如果您想对真实样品进行测试,请在我的完整代码下方输入:

Sub getPrice() 

    Dim urlPiece As String: urlPiece = "https://fr.finance.yahoo.com/q?s=" 
    Dim htmlResponse As Object 
    Dim XMLHttp As Object 

    Set htmlResponse = CreateObject("htmlfile") 
    ccyPair = "XAUUSD" 
    urlPiece = urlPiece & ccyPair & "=X" 
    Set XMLHttp = CreateObject("MSXML2.XMLHTTP") 
    XMLHttp.Open "GET", urlPiece, False 
    XMLHttp.send 
    htmlResponse.body.innerHTML = XMLHttp.responseText 
    Set doc = htmlResponse.document '<-- error here 

End Sub 

回答

0

我自己发现了这个错误。 与JavaScript不同,documentHTMLfilebody中定义,它本身不是对象的属性。 因此:

Set doc = htmlResponse.document 

而应是

Set doc = htmlResponse.body.document