Вставка изображений из каталога с помощью Excel

#excel #vba

#excel #vba

Вопрос:

Я хочу вставлять изображения из папки на основе того, что написано в ячейке

Пример

Ячейка A1 содержит слово «ABC001»

Я хочу, чтобы ячейка B1 вставляла изображение из каталога — image name = «ABC001.JPG «

Я нашел некоторый код VBA, который делает это за меня, но это работает только с одной ячейкой. я бы хотел, чтобы это работало для всего столбца

 Private Sub Worksheet_Change(ByVal Target As Range)

Dim myPict As Picture
Dim PictureLoc As String

If Target.Address = Range("A2").Address Then

ActiveSheet.Pictures.Delete

PictureLoc = "\ca-sbs-01tSharedExcelImages" amp; Range("A2").Value amp; ".jpg"

With Range("B2")
    Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
    RowHeight = myPict.Height

    myPict.Top = .Top
    myPict.Left = .Left
    myPict.Placement = xlMoveAndSize
End With

End If

End Sub
  

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

1. Я рекомендую вам использовать Dir(Path) для получения точного имени файла и некоторых, если для обработки ошибки, которая произошла бы, если бы ее там не было. Что касается выполнения для всего столбца, вы могли бы использовать цикл, чтобы выполнить работу.

Ответ №1:

Может быть, вы после этого

 Private Sub Worksheet_Change(ByVal Target As Range)

Dim myPict As Picture
Dim PictureLoc As String

    On Error GoTo EH
    Application.EnableEvents = False
    If Target.Column = 1 Then

        'Pictures.Delete

        PictureLoc = "\ca-sbs-01tSharedExcelImages" amp; Target.Value2 amp; ".jpg"


        With Target.Offset(, 1)
            Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
            .RowHeight = myPict.Height
            myPict.Top = .Top
            myPict.Left = .Left
            myPict.Placement = xlMoveAndSize
        End With

    End If
EH:
    Application.EnableEvents = True
End Sub