【问题标题】:Convert msxml.xmhttp code for 64 bit version of excel vba将 msxml.xmhttp 代码转换为 64 位版本的 excel vba
【发布时间】:2015-03-30 13:37:34
【问题描述】:

我一直在我的 32 位机器上使用 Excel VBA 中的以下函数,最近升级到 64 位机器和 Excel 2013 的 64 位版本。它仍然可以工作,但只下载部分 http 代码。我找遍了整个地方,找不到任何建议如何解决这个问题;真的很感激能帮助它再次工作。 谢谢 戴夫

Function SaveWebFile(ByVal vWebFile As String, ByVal vLocalFile As String) As Boolean
    Dim oXMLHTTP As Object, i As Long, vFF As Long, oResp() As Byte
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    oXMLHTTP.Open "GET", vWebFile, False 'Open socket to get the website
    oXMLHTTP.Send 'send request
    Do While oXMLHTTP.readyState <> 4
        DoEvents
    Loop
    oResp = oXMLHTTP.responseBody 'Returns the results as a byte array
    vFF = FreeFile
    If Dir(vLocalFile) <> "" Then Kill vLocalFile
    Open vLocalFile For Binary As #vFF
    Put #vFF, , oResp
    Close #vFF
    Set oXMLHTTP = Nothing
End Function

【问题讨论】:

  • 我没有得到你的问题!
  • 你的意思是你不明白我在问什么?
  • 上面的代码在我用 excel 2010 32 位运行时完美运行,但是当我用 excel 2013 64 位运行时,我得到了 html 代码的截断版本...
  • 我相信这与ie11 vs ie8有关。虽然特定网站允许我在使用 ie8 时使用密码登录后获取网页,但使用 ie11 时似乎没有这样做。
  • 绝对是 ie11 没有将 cookie 传递到网站的问题。有人知道解决方法吗?

标签: vba xmlhttprequest


【解决方案1】:

你试过 oXMLHttp.responseText 吗?

【讨论】:

  • 这可能是评论而不是答案
猜你喜欢
  • 2017-07-22
  • 2018-05-25
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
相关资源
最近更新 更多