2014-05-22 1 views
0

Je veux être en mesure de télécharger des images en utilisant plusieurs URL d'image sur vba. C'est le code que j'ai en ce moment, et chaque fois que j'essaye de le télécharger, il échoue (il lit "Fichiers non trouvés!"). Toute aide serait appréciée!!!Téléchargement automatique d'images à partir du site Web avec plusieurs 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 
+0

Quelle est la valeur de 'done'? Quel code d'erreur fait-il référence? –

+0

done = URLDownloadToFile (0, url, "C: \ Utilisateurs \ Public \ Images \", 0, 0) Cette référence pour voir si le fichier a été téléchargé ou non – user3565555

+0

Quelle est sa valeur * *? –

Répondre

0

J'ai ce code pour en faire deux choses simples:

Assurez-vous que vous avez http: // inclus dans vos urls, sans http URLDownloadToFile ne parvient pas à télécharger le fichier.

L'utilisation de la fonction URLDownloadToFile attend un nom de fichier plutôt qu'un nom de chemin d'accès pour le fichier téléchargé. Une solution rapide et sale consiste à effectuer les opérations suivantes:

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

qui attribue un nom à chaque fichier à l'aide de i.

Une meilleure solution analyserait le nom de fichier de l'URL et enregistrerait en utilisant ce nom de fichier.

À part ça, le code a bien fonctionné pour moi.

Questions connexes