excel批量导入图片一般是使用VBA代码实现,因为excel功能的局限性,插入——图片,尽管可以批量导入图片,但不能自动排版。
文章总结几个excel批量导入图片相关的案例,分享给大家。
excel批量导入图片案例一:
如下图所示:A列是姓名,D列需要批量导入A列姓名对应的照片,当单击“图片导入”按钮,即可批量导入图片。
下面的代码实现的功能是:批量导入图片,然后按照原比例缩放以填充单元格,如果单元格高宽改变,再次单击“图片导入”按钮即可。
Excel VBA中的Date类型的匹配问题
VBA的Date类型比较奇怪。 测试: 1. 新建一个空白的Excel文档,在A1单元格输入2009-11-12。 2. 打开VBA编辑器,插入模块,增加下面这个宏 Sub test() MsgBox #11/12/2009# = Range("A1").Value ' true Msg
说明:对应的图片命名需要和姓名一致,图片文件夹和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 VBA使用vlookup出现1004错误解决方法
Vlookup 在Excel中查找大量数据时效率是很高的,在Excel中广泛的被使用着。 vlookup 查找时如找到不到匹配项会返回#N/A 的错误,这点在工作表中是很友好的,但是在VBA中使用vlookup时不会返回这个错误值,而且是抛出1004错误,所以在使用是要标记它。 示例代码: Function chec