在Excel中通过改变单元格的值来更换图片,通常需要把图片插入到工作簿中,再用公式来更换。该方法在图片较多时有些不便,这时可用VBA代码来进行图片更换,而无需插入这些图片。步骤如下:
1、将所有图片放在一个文件夹中,在下面的示例代码中,图片所在文件夹名称为“图片文件夹”,并将该文件夹与工作簿放置在一起。
2.在工作表中插入一个图片,设置其位置和大小,然后选择该图片,在Excel界面右上角的名称框中输入一个名称后按回车键。在下面的示例代码中,将图片名称设置为“图片 1”。
3.在工作表中选择某个单元格,如下面的示例代码中的“J4”单元格。用设置数据有效性的方法制作一个下拉列表,这样就可以通过下拉列表选择来某个图片名称。
4、按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下面的代码。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = '$J$4' Then Dim Pic As Object, PicPathAndName As String, PicFolder As String Dim PicT As Integer, PicL As Integer, PicH As Integer, PicW As Integer '图片文件夹名称 PicFolder = '图片文件夹' '所选图片路径 PicPathAndName = ThisWorkbook.Path & '\' & PicFolder & '\' & Range('J4') & '.jpg' Set Pic = ActiveSheet.Shapes('图片 1') '原图片的位置和大小 With Pic PicT = .Top PicL = .Left PicH = .Height PicW = .Width End With '删除原图片 Pic.Delete '插入所选图片 Set Pic = ActiveSheet.Shapes.AddPicture(Filename:=PicPathAndName, LinkToFile:=msoFalse, _ SaveWithDocument:=msoTrue, Left:=PicL, Top:=PicT, Width:=PicW, Height:=PicH) '设置图片名称 Pic.Name = '图片 1' End If
Set Pic = Nothing End Sub 这样,当在J4单元格中选择不同的图片名称后,工作表中的图片会自动调用图片文件夹中图片进行更换。
来自:Excel技巧天地 链接:http://www./Article/excelvba/201212/965.html
●
|