我希望能够通过在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
答案 0 :(得分:0)
我通过做两件简单的事情来完成这段代码:
确保您的网址中包含http://,而http URLDownloadToFile无法下载该文件。
URLDownloadToFile函数的使用期望是下载文件的文件名而不是路径名。快速而肮脏的修复方法是执行以下操作:
done = URLDownloadToFile(0, url, "C:\Users\Public\Pictures\pic" & i & ".gif", 0, 0)
使用i。
为每个文件指定名称更好的解决方案是从网址解析文件名并使用此文件名保存。
除此之外,代码对我来说还不错。