2015-08-05 2 views
0

В настоящее время я использую этот код с помощью консоли разработчика, чтобы попытаться загрузить все изображения с гиперссылок, которые у меня есть в моем документе excel.Excel загрузка изображений из гиперссылки

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 

Кажется, что она будет загружать изображения, если ПОС имя столбца я в колонке А это что-то вроде этого - «calculator.jpg»

Однако, я хотел бы, чтобы имя изображения, чтобы быть гиперссылка, которую я использую, чтобы загрузить изображения, aka что-то вроде www.hyperlink.com/calculator.jpg

Мой код, кажется, не загружает изображения, когда гиперссылка находится в столбце имени изображения, даже если она печатает в столбце C "скачать успешно".

Если кто-то может мне помочь, я бы очень признателен!

+0

Какова ценность слова Col A и Col B? –

+0

Как я могу проверить? –

+0

открыть файл excel и посмотреть, что такое значение в строке 2, так что A2 и B2? –

ответ

0

Однако, я хотел бы, чтобы имя изображения, чтобы быть гиперссылкой я использую, чтобы загрузить изображения, иначе что-то вроде www.hyperlink.com/calculator.jpg

Как я уже говорил в комментариях выше, «Вы не можете иметь имя pic как гиперссылку, поскольку«/»не является допустимым символом для имени файла. Вы должны извлечь« calculator.jpg »из col A, а затем использовать его в коде«

Это то, что вы пытаетесь?

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 = "D:\Temp\" 

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

    '~~> 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 
     MyAr = Split(ws.Range("A" & i).Value, "/") 

     '~~> C:\Temp\Calculator.jpg 
     strPath = FolderName & MyAr(UBound(MyAr)) 

     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 
Смежные вопросы