多语言展示
当前在线:368今日阅读:84今日分享:32

Excel表格自动插入图片

如下图所示,要从“D:\ABCD”文件夹里面获取图片并插入到Excel表格的E列上面(图片名称与A列同一行单元格的内容相对应)。如果要插入的图片较少,可以手动处理;图片较多时,还是使用VBA程序处理比较快捷,也比较工整。4Excel选择单元格时显示相应的图片
工具/原料
1

计算机

2

Windows 7

3

Excel 2010

方法/步骤
1

打开Excel表格后,按下键盘上面的【Alt+F11】组合键打开VBA编辑器。

2

在VBA编辑器的菜单栏上面点击【插入】、【模块】。

3

在模块的代码框里边输入以下程序代码,然后按下【F5】键运行程序。Sub PicturesInsert()Dim i, arr, str, typ, shpOn Error Resume Next                                          '忽略运行中可能出现的错误Application.ScreenUpdating = False                            '关闭工作表更新,提高运行速度Set mysheet1 = ThisWorkbook.Worksheets('Sheet1')              '定义Sheet1工作表arr = Array('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tif')  '图片格式集合For Each shp In mysheet1.Shapes If shp.Left > mysheet1.Columns('D').Left And shp.Left < mysheet1.Columns('F').Left Then  shp.Delete   '如果是E列单元格里边的图片,则删除 End IfNextFor i = 2 To 1000      '从第2行到1000行 If mysheet1.Cells(i, 1) <> '' Then   '如果A列对应的单元格不为空白,则执行     For Each typ In arr               '执行图片格式组里面的每一个尝试      str = 'D:\ABCD\' & mysheet1.Cells(i, 1).Value & typ  '图片路径        If Dir(str) <> '' Then                             '如果图片存在,则执行          mysheet1.Pictures.Insert(str).Select        '插入图片并选择           With Selection.ShapeRange            .LockAspectRatio = msoFalse               '不锁定图片的比例            .Height = mysheet1.Cells(i, 5).Height - 4 '图片的高度设为单元格高度-4            .Width = mysheet1.Cells(i, 5).Width - 4   '图片的宽度设为单元格高度-4            .Top = mysheet1.Cells(i, 5).Top + 2       '图片的位置为E列对应单元格到顶部的距离+2            .Left = mysheet1.Cells(i, 5).Left + 2     '图片的位置为E列对应单元格到左侧的距离+2           End With            mysheet1.Cells(i, 5) = ''                 '清空E列对应单元格的内容          Exit For                                    '导入图片后,退出For循环        Else         mysheet1.Cells(i, 5) = '图片不存在'          '否则将显示“图片不存在”       End If      Next End IfNextmysheet1.Cells(i + 1, 5).SelectApplication.ScreenUpdating = True    '恢复更新显示End Sub

4

回到Sheet1工作表界面,将会发现E列对应的单元格已经自动插入相应的图片。

5

VBA程序、思路解读:(1)自动插入图片时,原先位置的图片应当删除,否则,每次插入图片都会把原来的图片覆盖,这样将会增大Excel表格的空间占用量,对于不存的图片将会造成失误。(2)图片的宽度、高度分别是单元格宽度、高度减4,其位置是单元格位置(距离左侧、顶部)加2,这样就可以使得图片在单元格里边居中显示。(3)使用With……End With语句可以对某个对象(已经选择的图片)执行一系列的语句而不用重复指出对象的名称。

注意事项

个人经验,仅供参考。

推荐信息