vba7中的对象浏览器不显示WebClient对象成员

时间:2013-11-18 19:54:54

标签: excel vba excel-vba

我需要从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库的过程,那将会非常有帮助。

提前致谢!

1 个答案:

答案 0 :(得分:1)

代替.Net库,我建议使用MSXML库。您可以通过单击“工具”--->将其添加到IDE中的VBA中。 “引用...”并选中“Microsoft XML,x.x”旁边的框,其中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