#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-адрес и запускаю его снова, он больше не появляется, и изображение вставлено правильно. Ты знаешь какой-нибудь способ обойти это?