从具有多个网址的网站自动下载图像

时间:2014-05-22 16:37:51

标签: vba url imagedownload

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

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

1 个答案:

答案 0 :(得分:0)

我通过做两件简单的事情来完成这段代码:

确保您的网址中包含http://,而http URLDownloadToFile无法下载该文件。

URLDownloadToFile函数的使用期望是下载文件的文件名而不是路径名。快速而肮脏的修复方法是执行以下操作:

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

使用i。

为每个文件指定名称

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

除此之外,代码对我来说还不错。