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

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

  发布时间:2022-12-10 07:24:58 

标签:姓名,自动插入

今天小编教大家在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
投稿

猜你喜欢

  • Windows10桌面声音图标不见了怎么办?我们都知道在Window10系统右下角的任务栏中会存在着音量控制图标,但有些情况下因用户的误操作
  • 第一步,打开office2010 word文档,单击左上方“插入”,选择“图片”,第二步,在插入图片对话框选择需要的图片插入,第三步,选定图
  • 如何在Word 2013中选择文本的长块? 这是选择任何大小的文本块的最佳方法,尤其是当该文本块大于一次在屏幕上看到的文本时:单击鼠标以将插
  • wps office 2015官方下载免费完整版是金山推出的一款免费办公软件,在国内还是比较著名的深受广大用户喜爱,,不管是进行文字处理、表
  • 很多原因都可能导致Win10系统的资源管理器出现“卡顿”现象,其中便包括了源文件的变化。也就是说,只要恢复系统源文件,便有可能解决资源管理器
  • Win10英雄联盟能登陆但进不去游戏黑屏怎么办?遇到这个问题我们可以先看看是不是网络问题导致的。但是如果能登录,没有提示网络问题的话,那么基
  • 旗舰版是win7系统最完善的一款版本,不少网友都安装了win7旗舰版,不过随着win10系统的发布,就算是使用win7旗舰版的朋友也抵挡不住
  • 在Word 2007中,用户可以为Word表格中的指定单元格或整个表格设置背景颜色,使表格外观层次分明。在Word 2007文档表格中设置背
  • word中怎么制作报纸排版模板?经常看报纸的网友发现,报纸的排版非常漂亮,版面非常清晰,用户体验极强。日常工作中,我们也有制作各类简报的工作
  • 在Word文档中我们可以根据自己的实际需要插入一些文本框,如果我们想要文本框看起来更加地个性化,更加地特别,我们就可以为文本框添加一些形状效
  • 大家使用word文档有没有遇到这样的情况:使用过程中或者关闭的时候弹出提示word遇到问题需要关闭,遇到这样的问题要如何解决呢?会不会对我们
  • Excel中有个非常独特的小技巧—双击鼠标功能,你造吗?Excel中双击鼠标有几个用途想知道吗?那就仔细来看看这篇文章吧。Excel技巧 e
  • 魔兽世界是一款经典的 网络游戏。很多玩家都在玩,最近有用户在使用windows10系统的游戏玩家反馈自己遇到了魔兽世界无法更新的现象,那么,
  • 通常,创建比较不同类型数据的Excel2007图表是有用的。例如,想要比较交易量的分配价格,或者销售量的税,或者失业率和消费指数,或者其它一
  • 在上传文章的时候,图片总是要居中,但是在某些特定的情况下效果不理想,例如我要将文字绕着图片,怎么办?下面小编教你们怎么设置图片居中。word
  • 使用Word编辑文档的时候,如果有小技巧的话,可以解决很多遇到的问题,也让工作更高效的完成,下面给大家分享word文字显示不全怎么办的小技巧
  •  用习惯了OneNote,若不同电脑系统的登录用户名均为“JohnnySun”,那么登录Microsoft账号后立刻就能自动同步。
  • 一般是在“开发工具”选项卡中,或者是在“视图”选项卡的“宏”命令。另:WPS OFFICE个人版没有VBA组件,所以不能使用控件。需要自行安
  • 我们在前面讲过在Word中如何输入对号,那么excel对号怎么打呢,是不是与Word中输入的方法一样呢,下面我们就来讲讲excel对号输入的
  • 我们在使用word文档编辑时,时常会用到各种箭头,本教程就为大家介绍一下怎么设置箭头样式。Word中设置箭头样式以Microsoft Wor
手机版 电脑教程 asp之家 www.aspxhome.com