电脑教程
位置:首页>> 电脑教程>> office教程>> Excel VBA如何根据姓名自动插入照片

Excel VBA如何根据姓名自动插入照片

  发布时间:2022-03-22 07:10:52 

标签:Excel,VBA如何根据姓名自动插入照片

一、前提条件

在Excel的单元格中,已输入人物的姓名,并且,在姓名的下面,留有空的单元格待插入相应的图片。

如下图一样。比如,B1是姓名,而B3则是要根据张三这个姓名,自动将张三这个人的照片插入到B3中。其它以此类推。

Excel VBA如何根据姓名自动插入照片

   这得使用VBA来完成。

同时,人物的照片所在的文件夹,和Excel工作薄,在相同的路径,比如,下图的位置。

Excel VBA如何根据姓名自动插入照片

   另外,每个员工的照片的名称,都是按照员工的姓名来命名的,如下图。

Excel VBA如何根据姓名自动插入照片

像这样的问题需求,是具备一定规律的,因此,能使用VBA来完成。

二、实现方法

打开你的Excel,然后执行菜单操作:“工具”→“宏”→“宏”;弹出如下图对话框。

Excel VBA如何根据姓名自动插入照片

   上图中,宏名那里,输入 AutoAddPic ,然后,点击“创建”按钮,弹出代码输入窗口,如下图。

Excel VBA如何根据姓名自动插入照片

   代码如上图,请书写完整,否则会发生异常。为方便大家的学习,下面将代码写为下文,以供参考:

'自动插入图片前,删除所有图片

For Each Shp In ActiveSheet.Shapes

If Shp.Type = msoPicture Then Shp.Delete

Next

Dim MyPcName As String

For i = 1 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count

If (ActiveSheet.Cells(i, 1).Value = "姓名") Then

MyPcName = ActiveSheet.Cells(i, 2).Value & ".gif"

'MsgBox "图片的完整路径是" & ThisWorkbook.Path & "员工照片" & MyPcName

ActiveSheet.Cells(i + 2, 2).Select '选择要插入图片的单元格作为目标

Dim MyFile As Object

Set MyFile = CreateObject("Scripting.FileSystemObject")

If MyFile.FileExists(ThisWorkbook.Path & "员工照片" & MyPcName) = False Then

MsgBox ThisWorkbook.Path & "员工照片" & MyPcName & "图片不存在"

Else

'在选定的单元格中插入图片

ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "员工照片" & MyPcName).Select

End If

End If

Next i

书写完代码以后,点击窗口中的保存,然后关闭代码窗口,返回Excel窗口。

接着,执行菜单操作:“工具”→“宏”→“宏”,弹出如下图。

Excel VBA如何根据姓名自动插入照片

   选中上面所创建的宏名 AutoAddPic ,然后,点击“执行”按钮,这样,Excel就会根据每个姓名找到所对应的照片,将照片插入到每一个人所对应的相应的单元格。

三、知识扩展

ThisWorkbook.ActiveSheet.UsedRange.Rows.Count该行代码的含义是,获取工作表中的有效数据的最大行。

If (ActiveSheet.Cells(i, 1).Value = "姓名") 判定第一列中的各行,其内容是否为“姓名”二字,是姓名就去找图片来插入,否则就不找。

MyPcName = ActiveSheet.Cells(i, 2).Value & ".gif"获取每个人的照片名称,如 青山.gif

ThisWorkbook.Path & "员工照片" & MyPcName获取每个人的照片所在的路径,是完整的绝对路径,而不是相对路径。

ActiveSheet.Cells(i + 2, 2).Select '选择要插入图片的单元格作为目标,即哪个单元格要插入图片,就选中哪个

ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "员工照片" & MyPcName).Select'在选定的单元格中插入图片

If MyFile.FileExists(ThisWorkbook.Path & "员工照片" & MyPcName) = False Then判断员工照片是否存在

0
投稿

猜你喜欢

  • 在我们工作生活中经常需要用到电脑截图来截取保存些重要信息,不过对于电脑新手来说还是不太清楚电脑怎么截图,问小编电脑按什么键自由截图。那今天小
  • excel2007冻结窗格是灰色的、不能用怎么办?在之前的excel2007教程中,我们分享了excel2007冻结窗格的方法,不少网友都觉
  • Media Creation Tool 2004是Win10官方的升级程序,官方的媒体创建工具页面还没有更新,但新的链接已经上线了,只需要在
  • 许多用户在使用电脑的时候都会收到一些别人发送的Word文档,但是不少用户收到的文档都是经过别人处理过的,甚至有些文档不能复制。那么当我们想要
  • 第1步:打开Word2007文档窗口,在“开始”功能区的“段落”分组中单击“编号”下拉三角按钮。并在打开的“编号”下拉列表中选择一种编号格式
  • 金山wps轻办公怎么卸载 wps轻办公卸载后果什么是金山wps轻办公?轻办公用于实现多人、多平台、多文档协作的办公体验!轻办公软件直接对编辑
  • Excel合并单元格时工作中经常需要用到的,如果你要多处进行合并是否需要进行多次操作呢?其实不必这么麻烦,我们可以进行批量操作,下面就来看看
  • 如何使用ps给美女照片瘦脸瘦身?给大家介绍如何使用ps给美女照片瘦脸瘦身,一起来看看吧。1.打开ps,打开素材图片。2.滤镜——液化。3.弹
  • 如果电脑内部出现故障的话,很可能会导致一些系统问题,例如系统任务栏假死、窗口假死等等。那么,Win10 1909任务栏假死该怎么办呢?针对这
  • word设置页数的方式有两种,一种是直接插入页码就可以了,整个文档都使用一个连续的页码;另一种是页码从任意的一页开始起为第一页,这样我们就需
  • Word选定连续文本的方法和选定单个单词的方法类似,主要还是拖动,不过选定比较短的连续文本和比较长的连续文本又有细微的差距,下面就由海哥of
  • 通过字数统计我们可以知道我们的word中总共有多少字符或者多少个字,每一段有多少字数,下面小编就为大家介绍在word2003文档中如何统计字
  • 有时为了需要,我们需要在Word文档中输入带圈的数字或者字符,下面小编就来分享Word文档中如何输入带有圆圈数字的的技巧吧,希望能给您提供参
  • word2007设置页码很多人都会,但是从任意页开始设置页码相信大多数人都不会,小编今天分享一下Word2007怎样从任意页开始设置页码的经
  • 听说Win10非常特别,听说Win10有很多功能,所以很多用户开始安装Win10预览版以尝试新功能,但是安装过程不如预期的顺利,很多用户报告
  • 地平线4是一款场景真实、开放地图的赛车游戏,游玩这款游戏能够让你感受到沿途美丽的风景、竞速的紧张、自由驾车体验。有用户反映在玩地平线4的时候
  • 在日常办公中,我们经常用到Word软件,Word办公软件的使用,为我们工作带来了极大的便利,下面小编就教怎么在word中给图片添加文字,希望
  • Excel中的数据表复制到Word后,表格样式常会出现越界的情况,超出版心,内容被截掉了。    遇到这种问题肿么办?这
  • 复制信息是一个常用的功能,有时我们需要复制的信息偏长的时候,按鼠标左键后在段落文字上进行拖动在有害己也内容的情况下太不符合实际了。范围的选取
  • 如果创建的word表格行或列过多时,可以将整行或整列进行删除,删除行和删除列的方法一样。下面以删除行为例介绍删除的方法,在word2013中
手机版 电脑教程 asp之家 www.aspxhome.com