Excel2007如何在一个单元格内自动插入图片

www.zhiqu.org     时间: 2024-05-21

一、前提条件

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

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

  这得使用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判断员工照片是否存在



~


#从衫泥# 要把图片插入到EXCEL的单元格中,如何操作? -
(17236565509): 方法有很多,前面二位说的都是插入图片的方法,我建议你使用插入→图片→找到你要插入图片的目标位置→插入.此时图片是插入了,但图片可能会很大,也不符合你说的在某一“单元格里”这才是关键所在,因为你说的要在单元格中,所以...

#从衫泥# excel中如何批量插入图片到对应列单元格? -
(17236565509): Sub 插入图片到单元格() On Error Resume Next Dim MR As Range For Each MR In Selection If Not IsEmpty(MR) Then MR.Select ML = MR.Left MT = MR.Top MW = MR.Width MH = MR.Height ActiveSheet.Shapes.AddShape(...

#从衫泥# excel单元格中如何输入文字又插入图片在EXCEL的单元格中我
(17236565509): 1.在工具栏中先打开绘图工具. 2.选中要插入图片的单元格如A1,输入需要的文字.再 选中A1,在界面底部点阴影样式,选最后一行的第3个样式.这时选中的单元格A1会出现一个带6个圆点的矩形. 3.光标指向要插入图片的单元格,当光标变为黑色十字箭头时点右键,点选“设置自选图形格式”. 4.在“设置自选图形格式”对话框,在“颜色与线条”界面点“填充/颜色”框边上的小三角,然后选择“填充效果”. 5.“填充效果/图片/选择图片”,在目录选好要插入的图片,确定,确定,即可把图片插入单元格了. 6.调整图片大小和位置到满意为止,如A1所示.

#从衫泥# 如何在excel表中1个单元格内批量插入隐形图片 -
(17236565509): 先去百度下载1个EXCEL高级工具箱,并解压进行安装.点击加载项——高级工具——批量导入图片 查看更多答案>>

#从衫泥# excel单元格内图片自动适中怎么设置? -
(17236565509): 方法/步骤 打开Excel,在一个单元格中插入一张图片(如下图所示). 调整图片的大小放在一个单元格里,如下图所示. 点击图片,右键选择“设置图片格式”. 在打开的“设置图片格式”对话框中,点击“属性”选项卡,选中“大小、位置随单元格而变”,然后点击“确定”. 这时候还需要点击图片,软后点击“绘图”(如果没有绘图工具,可以点击菜单栏“视图”—“工具栏”—“绘图”),选择“自动对齐”—>“对齐网格”. 6 设置完后,可以拖拽下图片到单元格边缘,自动对齐到单元格了.现在拖拽图片的效果如下图所示.

#从衫泥# EXCEL批量自动插入图片的宏,由列内单元格内容从图片文件夹中自动插入 -
(17236565509): Sub InsertPic() Dim i As Long, sPath As String, sfileName As String sPath = "D:\pic\" Application.ScreenUpdating = False On Error Resume Next With ThisWorkbook.Sheets("Sheet1") For i = 1 To 256 If .Cells(1, i) <> "" Then ...

#从衫泥# excel如何在表格框中插入图片 -
(17236565509): 插入-图片,在图片右下角移动鼠标,当变成十字花形状,按住ALT缩放到单元格位置,图片自动对齐. 如果想直接插入到单元格里,我做不到.

#从衫泥# 高手进啊!Excel2007中,如何让一个图片作为一个单元格的背景,请注意不是整个文档? -
(17236565509): 图片可以跟着缩放,但是之前必须设置大小的,选中图片->格式->排列->对齐->选择对齐网格,调整图片对齐后,选中图片->大小和属性->属性->大小位置随着单元格改变而改变.这时你再改动单元格大小,它都是占满单元格作为背景的.

#从衫泥# 如何在2007excel里其中一个表格里添加一张图片,而且不是整张显示,而是在表格里看不到,一点击就可以打开 -
(17236565509): 画一个三角,选中, 右键 设置超链接

#从衫泥# 怎么在2007版的EXCEL中插入背景图片?
(17236565509): 在Excel里面插入图片:格式--工作表--背景,插入的图片是自动衬于文字下方的,如果想删除,步骤相同. 如果用插入--图片--来自文件,图片是浮动于文字上方的.不能加为背景图片.