
我把所有的图片都放在同一个文件夹,想通过Excel上面的名称直接把相对应的照片显示出来,要怎么弄呀?
然后再单元上 右键-超链接 指向你要显示的图片。
我不会VBA呢。
大小是刚好的,只需要显示出来就行,不需要再调整图片或者表格大小。
打开工作簿,右键表名,查看代码。将下面代码复制到里面。
两段代码的中间都有两个 100 第一个表示图片的宽度,第二个表示图片的高度。你自己修改下。
第一段代码是批量设置的,也就是说你在B列事先输入好了名称后按ALT+F8选择这个宏来运行就可以。
第二段是自动的,当你在B列输入名称后自动插入。
两段代码中间还有个 “.JPG” 这个表示图片的后缀名。如果你的不是JPG就要修改
有什么问题可以先下载附件看看。还是不行可以加我扣扣, 九八七一二二八一七
Sub 批量设置()
Dim Path As String, I As Long
Dim Rng1 As Range, Rng2 As Range
On Error Resume Next
Path = ThisWorkbook.Path & "\" '图片路径
For I = 1 To Range("B65536").End(xlUp).Row
Set Rng1 = Range("A" & I)
Set Rng2 = Range("B" & I)
If Range("B" & I).Value <> "" Then
Shapes(Rng2.Value).Left = Rng1.Left + 5
Shapes(Rng2.Value).Top = Rng1.Top + 5
If Err Then
ActiveSheet.Shapes.AddPicture(Path & Rng2.Value & ".JPG", 1, 1, Rng1.Left + 5, Rng1.Top + 5, 100, 100).Name = Rng2.Value
Err.Clear
End If
End If
Next
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng1 As Range, Rng2 As Range
On Error Resume Next
If Target.Value <> "" And Target.Column = 2 And Target.Count = 1 Then
Path = ThisWorkbook.Path & "\" '图片路径
Set Rng1 = Target.Offset(, -1)
Set Rng2 = Target
Shapes(Rng2.Value).Left = Rng1.Left + 5
Shapes(Rng2.Value).Top = Rng1.Top + 5
If Err Then
ActiveSheet.Shapes.AddPicture(Path & Rng2.Value & ".JPG", 1, 1, Rng1.Left + 5, Rng1.Top + 5, 100, 100).Name = Rng2.Value
Err.Clear
End If
End If
End Sub