0

我希望能够通过在 vba 上使用多个图像 url 来下载图像。这是我现在拥有的代码,每次我尝试下载时,它都会失败(它显示“找不到文件!”)。任何帮助将不胜感激!!!

Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long


Private Sub Image()

    Dim i As Long
    Dim url As String
    Dim done As Long
    Worksheets("Sheet1").Activate
        For i = 1 To 4
       url = Sheet1.Range("A" & i).Text
    done = URLDownloadToFile(0, url, "C:\Users\Public\Pictures\", 0, 0)

      Next
        'Test.
        If done = 0 Then
            MsgBox "Files have been downloaded!"
        Else
            MsgBox "Files not Found!"
        End If

End Sub
4

1 回答 1

0

我通过做两件简单的事情让这段代码工作:

确保您的 url 中包含 http://,没有 http URLDownloadToFile 无法下载文件。

URLDownloadToFile 函数的使用要求下载文件的文件名而不是路径名。一个快速而肮脏的解决方法是执行以下操作:

done = URLDownloadToFile(0, url, "C:\Users\Public\Pictures\pic" & i & ".gif", 0, 0)

它使用 i 为每个文件分配一个名称。

更好的解决方案是从 url 解析文件名并使用此文件名保存。

除此之外,代码对我来说效果很好。

于 2014-05-23T08:56:55.347 回答