好了 张芸京:批量插入图片2

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 18:17:46
批量插入图片22011-11-05 10:26

曾经在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窗口中,点击工具栏上的三角“运行”按钮来执行这个宏代码 。

下面图片是用“工具-宏-宏”来执行


下面是执行代码后的效果