excel批量导入图片一般是使用VBA代码实现,因为excel功能的局限性,插入——图片,尽管可以批量导入图片,但不能自动排版。
文章总结几个excel批量导入图片相关的案例,分享给大家。
excel批量导入图片案例一:
如下图所示:A列是姓名,D列需要批量导入A列姓名对应的照片,当单击“图片导入”按钮,即可批量导入图片。
下面的代码实现的功能是:批量导入图片,然后按照原比例缩放以填充单元格,如果单元格高宽改变,再次单击“图片导入”按钮即可。
说明:对应的图片命名需要和姓名一致,图片文件夹和excel源文件放在同一路径之下。
下面是具体的代码:
Sub 批量导入图片()
'将图片导入。
'图片按照原比例存储,按照原比例存储
On Error Resume Next
Dim R&
Dim Pic As Object
'先删除所有可能存在的图片
For Each Pic In Sheet1.Shapes
If Pic.Name <> Sheet1.Shapes("按钮 97").Name Then
Pic.Delete
End If
Next
For R = 2 To Range("A65536").End(xlUp).Row
'插入图片
Set Pic = Sheet1.Pictures.Insert(ThisWorkbook.Path & "\pic\" & Cells(R, 1) & ".jpg")
'锁定高宽比
Pic.ShapeRange.LockAspectRatio = True
'看高宽比。如果图片高宽比高,那么调整到单元格高度,否则调整到单元格宽度
'我们看到的右键格式菜单里的东西都是针对ShapeRange而言的,所以要用ShapeRange来设定
With Pic.ShapeRange
'如果图片高宽比比单元格大,说明图片太高,只需调整图片高度
If .Height / .Width > Cells(R, 4).Height / Cells(R, 4).Width Then
.Height = Cells(R, 4).Height
'调整位置
.Top = Cells(R, 4).Top
.Left = Cells(R, 4).Left + (Cells(R, 4).Width - .Width) / 2
'如果图片高宽比比单元格小,说明图片太宽,只需调整图片宽度
Else
.Width = Cells(R, 4).Width
'调整位置
.Left = Cells(R, 4).Left
.Top = Cells(R, 4).Top + (Cells(R, 4).Height - .Height) / 2
End If
End With
Next R
End Sub
我们在excel对图片进行排版时,可以选中图片,勾选对齐网格,以及在插入图片或控件时,按住Alt键并拖动对象的边框,可以快速调整尺寸适应单元格大小。
excel批量导入图片案例二:
利用excel制作职工基本情况统计表,如果将公司所有员工的照片都粘贴在EXCEL中,会造成EXCEL文件臃肿不勘。附件提供的文件和方法只需将员工照片与EXCEL放在一个文件夹内即可快速调用。
随着C2单元格选择不同的姓名,所有的资料信息和对应的照片会自动发生改变。下面是一个截图。
excel批量导入图片案例三:
按照级别批量插入对应的军衔图片。
第一步:在H2单元格中输入下列公式,下拉填充至H9单元格:
="<table><img src="""&REPLACE(CELL("filename"),FIND("[",CELL("filename")),99,)&"photo\"&G2&".gif"" width=72 height=48>"
第二步:复制H2:H9单元格→选中1个空单元格→单击编辑栏→将剪切板的内容粘贴到编辑栏内→在编辑栏内复制刚才粘贴的内容→单击H2单元格→Ctrl+V粘贴,完成批量导入图片。
三个案例对应的源文件和动画演示截图下载地址:http://115.com/file/anjz35mp#excel批量导入图片案例.rar