Вопрос по vba, excel, image – ПОЛУЧИТЬ картинки с URL, а затем переименовать картинку

8

У меня есть список Excel с большим количеством номеров статей, например. & Quot; 23378847 & Quot ;. И я хочу, чтобы изображения всех номеров моих статей в списке хранились в моей папке.

Но результат будет как под. Это должно быть 23378847.jpg, а не 152499

http://media.byggtjeneste.no/media/bilde/152499/LargeThumbnail
или же
http://www.nobb.no/Nobbnr/OrginalBilde/23378847/152499

Есть ли способ, которым я могу сделать заметки, которые читают мой файл и сохранить фото с тем же номером статьи, что и в списке?

Ладно, где бы ты ни получил помощь, это здорово. Для вашего вопроса здесь вы должны переписать его, чтобы прояснить, что вы имеете в виду. Поместите его в свой вопрос, а не только в свои комментарии. Shegit Brahm
Они говорят, что мне нужно использовать «GET /ProduktInfo.asmx/HentBildeLenke?sModulNr=string&sBilledStorrelse=string HTTP / 1.1 Host: produktinfo.byggtjeneste.no» и так далее. Кстати: спасибо за ваше время, Шегит Frank
Ух ... Мой английский плохой ... извините за это :) Не все в порядке. В моем списке есть мои номера, на этом URL есть картинки, и я хочу загрузить все картинки в свою папку. Но, как вы видите, у сайта есть странное окончание / переименование (152499), что доставляет мне проблемы. Frank

Ваш Ответ

1   ответ
23

Я предполагаю, что ваш файл 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
Так как макрос узнает, какие ссылки есть у каждого идентификатора? Siddharth Rout
Привет, Сиддхарт! ОЧЕНЬ приятно :) Нет, мой список без ссылок ... Только 23378847 и так далее в одном столбце. Ссылки должны быть внутри макроса. Frank
Ааааа ..... я понял ... Ты мне бог :) Спасибо ALOT !! Frank
Удивительный человек @SiddharthRout За это ты должен получить награду серьезно Mowgli
Я делаю ссылки с помощью .chain formel (не уверен в слове EN для этого formel) из столбца A Frank

Похожие вопросы