好了 张芸京:批量插入图片2
来源:百度文库 编辑:偶看新闻 时间:2024/04/29 18:17:46
曾经在2010年10月份介绍了一篇《批量插入图片》的文章,是在多个工作表的固定位置中各插入一张图片,也就是每个工作表插入一张,有多少工作表就插入多少张。
后来有不少朋友询问,如何在一个工作表的不同位置中插入不同图片,于是就做了这个《批量插入图片2》。
这个表格是以建立员工档案为例,根据表格中的各员工姓名,将与他们对应的照片插入到工作表中。
方法如下:
1、先建一个工作表,将它的标签名字改成“员工档案”
表格的B列是各员工的姓名,E列暂时空着,一会儿将照片插入到这个位置,需要将E列单元格的大小调整一下,以便使插入的照片大小适中
提示:插入到表格的照片,最终显示大小是以E列单元格的大小为准的,也就是说不论照片的实际大小是多少,都会被VBA缩放成E列单元格的尺寸。
2、准备几张员工的照片,保存到硬盘的指定位置。
此例中,我们的保存位置是"E:\照片\"
在E盘的根目录建一个名为“照片”的文件夹,将照片粘贴进去。
3、编写VBA代码
在EXCEL窗口中按ALT+F11调出VBA窗口,插入一个用户模块。
模块插入后会显示一个空白窗口,将下面代码粘贴进去就行了。
Sub 批量插入图片()
Dim wj As String
Dim rng As Range
Sheets("员工档案").Select '选中要插入图片的工作表
x = [a65536].End(xlUp).Row '取得最后一行的行号
For i = 2 To x
na = Cells(i, 2) '从第二列(即B列)得到员工名字,并以此名查找图片
wj = "e:\照片" & "\" & na & ".jpg" '图片文件存储的路径与格式(.jpg)
If Dir(wj) <> "" Then
Cells(i, 5).Select '图片需要插入到第五列(即E列)
ActiveSheet.Pictures.Insert(wj).Select
Set rng = Cells(i, 5) '根据单元格的大小调整图片
With Selection
.Top = rng.Top + 1
.Left = rng.Left + 1
.Width = rng.Width - 1
.Height = rng.Height - 1
End With
End If
Next
MsgBox "图片插入完毕"
End Sub
4、完成
经过上面步骤就制作完成了,可以使用了。
回到员工档案的EXCEL窗口,按上面菜单“工具-宏-宏”,调出“宏”窗口,在里面打到“批量插入图片”宏,执行就可以了。
另外也可在VBA窗口中,点击工具栏上的三角“运行”按钮来执行这个宏代码 。
下面图片是用“工具-宏-宏”来执行
下面是执行代码后的效果