2012-04-30 10 views
8

Tengo una lista de Excel con muchos números de artículos, p. Ej. "23378847". Y quiero que las imágenes de todos mis números de artículos en la lista estén almacenadas en mi carpeta.OBTENGA imágenes de una url y luego cambie el nombre de la imagen

Pero el resultado será como debajo. Cabe 23378847.jpg No 152499

http://media.byggtjeneste.no/media/bilde/152499/LargeThumbnail
o
http://www.nobb.no/Nobbnr/OrginalBilde/23378847/152499

¿Hay una manera que puedo hacer unos vales que leen mi archivo y guardar la foto con el mismo número de artículo como en la lista ?

+0

uf ... Mi Inglés es malo ... lo siento por eso :) No todo correcto. En mi lista tengo mis números, esa URL tiene las imágenes y quiero descargar todas las imágenes a mi carpeta. Pero como ves, el sitio tiene una terminación/cambio de nombre weerd (152499) que me da un problema. – Frank

+0

Dicen que necesito usar "GET /ProduktInfo.asmx/HentBildeLenke?sModulNr=string&sBilledStorrelse=string HTTP/1.1 Host: produktinfo.byggtjeneste.no" y así sucesivamente. Por cierto: gracias por tu tiempo, Shegit :) – Frank

+0

De acuerdo, de donde sea que hayas conseguido algo de ayuda, está bien. Para su pregunta aquí, debe volver a escribirla para aclarar a qué se refiere. Colóquelo dentro de su pregunta, no solo dentro de sus comentarios. –

Respuesta

22

Aquí hay una muestra que te ayudará.

Supongo que su archivo de Excel se verá así. Por favor enmenda el código según corresponda.

enter image description here

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 

Dim Ret As Long 

'~~> This is where the images will be saved. Change as applicable 
Const FolderName As String = "C:\Temp\" 

Sub Sample() 
    Dim ws As Worksheet 
    Dim LastRow As Long, i As Long 
    Dim strPath As String 

    '~~> Name of the sheet which has the list 
    Set ws = Sheets("Sheet1") 

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row 

    For i = 2 To LastRow '<~~ 2 because row 1 has headers 
     strPath = FolderName & ws.Range("A" & i).Value & ".jpg" 

     Ret = URLDownloadToFile(0, ws.Range("B" & i).Value, strPath, 0, 0) 

     If Ret = 0 Then 
      ws.Range("C" & i).Value = "File successfully downloaded" 
     Else 
      ws.Range("C" & i).Value = "Unable to download the file" 
     End If 
    Next i 
End Sub 
+0

¡Hola Siddharth! MUY agradable :) No, mi lista está sin los enlaces ... Solo 23378847 y así sucesivamente en una columna. Los enlaces deben estar dentro de la macro. – Frank

+0

Entonces, ¿cómo sabrá la macro cuáles son los enlaces para cada ID? –

+0

Ahhh ..... lo tengo ... Ur Dios para mí :) ¡Muchas gracias! – Frank

Cuestiones relacionadas