打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用VBA根据单元格值动态改变图片

在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.excel123.cn/Article/excelvba/201212/965.html



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel | VBA(12)—批量导出图片并重命名
你会用Excel公式查找 图片 吗?
VBA根据excel表指定单元格的内容批建空文件夹
批量将图片插入到Excel中,且自动调整图片大小以适应单元格的大小!
MF系列VBA技术资料1
Excel怎么批量插入对应产品图片?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服