Excel вставить макрос изображения из URL-адреса не работает, если URL-адрес не был открыт первым

#excel #vba

Вопрос:

Я использовал следующий код для вставки изображений с URL-адреса. Если в ячейке есть URL-адрес, он вставляет изображение, а если его нет, то оставляет изображение звезды, которое уже есть в документе. Некоторое время это работало нормально, однако внезапно изображения больше не попадаются, если я заранее не открою URL-адреса каждого изображения, что может расстраивать, так как иногда их довольно много (мне не нужно было открывать их заранее).

Я не уверен, что это проблема с кодом или, возможно, параметр, который может блокировать URL-адрес до тех пор, пока он не будет открыт. Любая помощь будет признательна.

 Sub URLPictreInsert()
    Dim shp As Shape
    Dim Pshp As Shape
    Dim xRg As Range
    Dim xCol As Long
    Dim Pic As Object
    Dim lLeft As Long
    Dim lTop As Long
    On Error Resume Next
    xCol = 2
    Sheets("Message Template").Activate
    Application.ScreenUpdating = False
    For Each Pic In ActiveSheet.Pictures
    Pic.Delete
    Next Pic
    For Each shp In ActiveSheet.Shapes
        shp.Delete
    Next shp
    Set Rng = Sheets("First Class").Range("E5:E500")

For Each cell In Rng
    filenam = cell
          
    ActiveSheet.Pictures.Insert(filenam).Select
    Set Pshp = Selection.ShapeRange.Item(1)
    If Pshp Is Nothing Then GoTo lab
    Sheets("Message Template").Activate
    Set xRg = Cells(2, xCol)
    Pshp.Placement = xlMoveAndSize
    With Pshp
        .Width = 100
        If Pshp.Height > xRg.Height Then Pshp.Height = xRg.Height
        .Top = xRg.Top   (xRg.Height - .Height) / 2
        .Left = xRg.Left   (xRg.Width - .Width) / 2
   End With
   GoTo 2
 

Комментарии:

1. Добро пожаловать в SO! On Error Resume Next Оператор скрывает все ошибки. Удалите его и снова запустите свой код для отладки.

2. Спасибо! Поэтому я удалил инструкцию On Error Resume Next и запустил ее снова. Он выдает ошибку «Ошибка во время выполнения «1004»: Не удалось получить свойство Insert класса Pictures. Когда я открываю URL-адрес и запускаю его снова, он больше не появляется, и изображение вставлено правильно. Ты знаешь какой-нибудь способ обойти это?