当前位置: 首页 > 文章教程  > 计算机与互联网 > 办公软件

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

5/10/2018 8:22:08 PM 人评论

在Excel中通过改变单元格的值来更换图片,通常需要把图片插入到工作簿中,再用公式来更换。该方法在图片较多时有些不便,这时可用VBA代码来进行图片更换,而无需插入这些图片。步骤如下:1.将所有图片放在一个文件夹中,在下面的示例代码中,图片所在文件夹名称为&ld…

在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单元格中选择不同的图片名称后,工作表中的图片会自动调用图片文件夹中图片进行更换。

相关教程

  • wps文字怎么设置文字环绕图片?wps文字环绕图片的设置方法图解

    wps文字是进行文字编辑的一款办公软件。我们再输入很长文档的时候要插入图片,而插入图片的位置是很重要的,下面小编就告诉大家怎么设置wps文字环绕,希望能帮到大家 1、点击菜单“WPS文字”下的“新建”,新建一个文档接着,在文档…

    5/10/2018 8:23:47 PM
  • wps工具栏怎么调出来 wps怎么调出工具栏

    我们在使用wps编辑文字的时候,很多时候都需要使用工具栏。很多朋友一个不小心就把工具栏隐藏了,不知道怎么调出来,其实很容易,下面小编将这个方法分享给大家首先我们打开wps你要操作的文档,然后点击右上角的隐藏的按键然后我们工具栏又出来了在wps表格和wps演示中,这…

    5/10/2018 8:23:44 PM
  • wps冻结窗口怎么设置 WPS表格怎么冻结窗口

    在我们的工作中有大量的表格要出理,有些时候我们的处理的数据过多,我们会冻结表头方便操作和阅读。下面小编就分享一下wps怎么冻结表格1、打开wps,比如这个表格我们需要,我们冻结第1行。2、然后点击视图---冻结表格3、这个时候我们看一下效果,这个时候我们发现&l…

    5/10/2018 8:23:43 PM
  • wps水印怎么去掉 wps怎么去水印

    这年头什么东西都得上水印,才能彰显重要性。小编同学昨天下载的一个文档也有水印,文档要打印出来就必须去掉水印。下面小编就为大家分享一下WPS是怎么去水印1、我们打开文档,然后可以看到水印,这样的文档是不能直接打印的2、点击“插入”菜单,点击…

    5/10/2018 8:23:43 PM

共有条评论 网友评论

验证码: 看不清楚?