【问题标题】:Object browser in vba7 does not show WebClient Object members [duplicate]vba7中的对象浏览器不显示WebClient对象成员[重复]
【发布时间】:2013-12-02 02:57:02
【问题描述】:

我需要从 URI 自动下载并保存文件。我想我可以使用“urlmon”库中的 URLDownloadToFile,但我想使用 WebClient.DownloadFile 方法。

我希望这只是小菜一碟,但由于我以外的原因,我无法在 VBA 7 IDE 中查看或使用 WebClient 类的成员。我已经引用了 .Net 2 框架的 System.tlb 并且能够看到 System.Net 命名空间中的类,但是许多类的成员不可见,我无法在我的代码中使用它们。

尝试使用以下代码时出现编译错误:

Dim Downloader as New System.WebClient

Downloader.DownloadFile("uri","filename")

也许我没有注册要在 VBA 中使用的 .Net 类,因此出现了问题,但是;我的项目中提到的System.dll 位于C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.tlb

这让我更加困惑。此外,如果有人能详细说明在 VBA 7 中引用 .Net Framework 库的过程,那将非常有帮助。

提前致谢!

【问题讨论】:

标签: vba excel


【解决方案1】:

我建议使用 MSXML 库代替 .Net 库。您可以通过单击“工具”--->“参考...”并选中“Microsoft XML,x.x”旁边的框,将其添加到 IDE 中的 VBA,其中 x.x 是最新版本。

这是您可以运行的快速测试:

Public Sub Downl()
    Dim xhttp As MSXML2.XMLHTTP
    Set xhttp = New MSXML2.XMLHTTP

    Dim oFile As Integer
    oFile = FreeFile()
    Open CurrentProject.Path & "\test.png" For Binary Access Write As oFile

    Dim bdata() As Byte

    With xhttp
        .Open "GET", "https://www.google.com/images/srpr/logo11w.png", False
        .send
        bdata = .responseBody
        Put oFile, 1, bdata
    End With

    Close oFile
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 2013-10-23
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多