Я написал код для установки изображений рядом с его ссылкой на листе Excel после его загрузки. Он работает плавно, но проблема в том, что каждый раз, когда я запускаю код, он снова загружается и устанавливается там. Поэтому, если я удалю одну картинку, я увижу другую в этом месте. Я надеюсь, что есть решение в выражении if, чтобы, если оно было применено, оно будет опускать загрузку и перейти к следующему циклу, если ячейка уже заполнена. Я не могу это сделать. Если кто-нибудь поможет мне в этом, я буду очень благодарен. Заранее спасибо.Невозможно установить, если инструкция между моим кодом, чтобы сделать его безошибочным
Примечание: ссылки находятся в столбце B и изображения, которые можно найти в столбце C.
Sub SetPics()
Dim pics As String
Dim myPic As Picture
Dim rng As Range
Dim cel As Range
Set rng = Range("C2", Range("B2").End(xlDown).Offset(0, 1))
For Each cel In rng
pics = cel.Offset(0, -1)
Set myPic = ActiveSheet.Pictures.Insert(pics)
With myPic
.ShapeRange.LockAspectRatio = msoFalse
.Width = cel.Width
.Height = cel.Height
.Top = Rows(cel.Row).Top
.Left = Columns(cel.Column).Left
End With
Next cel
End Sub
Это должно работать, но это довольно неэффективный O решение (п^2). Лучшее решение будет перебирать фигуры * один раз *, хранить 'Row' каждой фигуры в ключе' Словарь', а затем вы могли бы искать O (1) с помощью 'theDictionary.Exists (cel.Row)' вместо итерации каждой фигуры для каждой ячейки диапазон. –
Спасибо, Шай Радо. Ты жемчужина парня. Теперь это безупречно. Еще раз спасибо. – SIM
Дорогая сэр Мать, было бы неплохо, если бы у меня был ваш эффективный, если у вас есть время, чтобы сэкономить. Благодарю. – SIM