Преобразовать URL-пути в формате JPG, а не PNG, в фактические вставки изображений в Excel

Преобразовать URL-пути в формате JPG, а не PNG, в фактические вставки изображений в Excel

Я пытаюсь найти код VBA, который помог бы мне преобразовать пути URL в формате JPG, а не PNG, в фактические вставки изображений в Excel. Существует множество VBA, которые работают, но только если URL содержат фотографии PNG.

Я начал верить, что это по сути ограничение Excel, не позволяющее отображать фотографии по URL-адресу.

Если кто-нибудь из вас знает какой-нибудь VBA-код, который мог бы извлечь ФОТОГРАФИИ (ФОРМАТ JPG) из URL-ПУТИ в Excel и разместить каждую фотографию рядом с ее ссылкой, это было бы для меня большой помощью.

https://viewworld-files-console.s3.amazonaws.com/assets/113441/preview/IMG_20190327_151722.jpg

Это одна из ссылок, с которой я бы хотел это сделать.

решение1

Следующий код работает для URL, но по какой-то причине сервер блокирует запрошенный вами URL. Возможно, это связано с веб-серверами Amazon?

Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
On Error Resume Next
Application.ScreenUpdating = False
Set Rng = ActiveSheet.Range("A2:A5")
For Each cell In Rng
filenam = cell
ActiveSheet.Pictures.Insert("https://images.pexels.com/photos/302743/pexels-photo-302743.jpeg").Select
Set Pshp = Selection.ShapeRange.Item(1)
If Pshp Is Nothing Then GoTo lab
xCol = cell.Column + 1
Set xRg = Cells(cell.Row, xCol)
With Pshp
.LockAspectRatio = msoFalse
If .Width > xRg.Width Then .Width = xRg.Width * 2 / 3
If .Height > xRg.Height Then .Height = xRg.Height * 2 / 3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
End With
lab:
Set Pshp = Nothing
Range("A2").Select
Next
Application.ScreenUpdating = True

решение2

Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
    On Error Resume Next
    Application.ScreenUpdating = False
    Set Rng = ActiveSheet.Range("A2:A5")
    For Each cell In Rng
    filenam = cell
    ActiveSheet.Pictures.Insert("https://cdn.pixabay.com/photo/2018/02/07/20/58/girl- 
    3137998_960_720.jpg").Select
    Set Pshp = Selection.ShapeRange.Item(1)
    If Pshp Is Nothing Then GoTo lab
    xCol = cell.Column + 1
    Set xRg = Cells(cell.Row, xCol)
    With Pshp
    .LockAspectRatio = msoFalse
    If .Width > xRg.Width Then .Width = xRg.Width * 2 / 3
    If .Height > xRg.Height Then .Height = xRg.Height * 2 / 3
    .Top = xRg.Top + (xRg.Height - .Height) / 2
    .Left = xRg.Left + (xRg.Width - .Width) / 2
    End With
lab:
    Set Pshp = Nothing
    Range("A2").Select
    Next
    Application.ScreenUpdating = True

Связанный контент