#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