在Excel中如何使用VBA根据姓名自动插入照片

所属分类: 软件教程 / 办公软件 阅读数: 263
收藏 0 赞 0 分享

   一、前提条件

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

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

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

  这得使用VBA来完成。

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

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

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

  二、实现方法

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

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

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

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

  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窗口。

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

  选中上面所创建的宏名 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 判断员工照片是否存在

更多精彩内容其他人还在看

如何在word文档中将页眉上横线删除

如何在word文档中将页眉上横线删除?很多朋友都不是很清楚,其实方法很简单的,下面小编就为大家介绍一下,一起来看看吧
收藏 0 赞 0 分享

使用捷速PDF编辑器修改pdf文档教程

要想修改pdf文档,但是不知道怎么修改,首先用户需要在电脑上下载安装捷速PDF编辑器,安装的过程非常简,之后按照下文操作即可
收藏 0 赞 0 分享

六亿宝贝反黄软件如何卸载(传统方法不行)

如何卸载,是安装了六亿宝贝反黄软件的用户最爱搜索的问题,传统的卸载方法不管用呀,还好想到了这个方法,下面以图文的形式为大家详细介绍下
收藏 0 赞 0 分享

Word2003版本保存怎么用?

Word版本保存怎么用?他可以打开其他协同者所保存的版本来查看该协同者完成对文档编辑之后的状态,还可根据各版本保存时间的先后来依次打开各版本,从而比对某一协同者编辑文旦前、后的状态变化
收藏 0 赞 0 分享

word字体显示一半怎么办?

word字体显示一半怎么办?现在大家都是无纸办公化,尤其使用word、excell比较多,但是我们在使用过程中总是碰到一些问题,比方我们在打字的时候,总是出现显示一半的情况,下面分享解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享

PDF文件怎么提取页面到另一个PDF文件中?

PDF文件怎么提取页面到另一个PDF文件中?很多学习资料都是PDF格式的,有时自己证件扫描也会存进PDF文件,但是其中某些页的内容自己想分离出来,存进一个新的PDF中 ,网上方法还要下软件,下面分享一个简单的技巧,感兴趣的可以进来参考一下
收藏 0 赞 0 分享

ppt怎么设置动画窗格声音视频?

ppt怎么设置动画窗格声音视频?office ppt 的动画功能很轻大,尤其是配合视频,和音频后。下面以 office 2010为例告诉这些简单的操作如何设置。如何防止,需要的朋友可以参考下
收藏 0 赞 0 分享

word怎么设置才能尽可能的减少打印页面?

word怎么设置才能尽可能的减少打印页数?要打印的word文档有很多页,即使双面打印也要浪费很多纸张,该怎办呢?下面分享一种设置方法可以减少word打印页面,感兴趣的可以进来参考一下
收藏 0 赞 0 分享

ppt文档设置成单击时却还会自动启动的解决办法

ppt为何设置成单击时却还会自动启动?office办公软件虽然看来简单,但是功能太细太复杂了。比如说PPT里动画窗格明明设置成了“单击时”启动,然而播放的时候却变成自动的了,下面分享解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享

WPS 无法启动无法启动打印作业该怎么解决?

WPS 无法启动无法启动打印作业该怎么解决?在局域网内连接打印机启动打印作业时会出现一些小状况,例如偶尔会出现“WPS office 无法启动打印作业……”的问题,下面分享解决办法
收藏 0 赞 0 分享
查看更多