批量用公式是不行的了,如果你数量比较少可以
在Excel中插入一张或少数的几张照片,我们可以通过手动完成。但如果你会批量插入照片,那么无论插入照片的多少,我想你会爱上这种技巧,今天教给大家如何批量插入照片。
1、准备工作
我们以批量插入员工照片为例
首先我们要有员工花名册
其次我们要准备好照片,照片名称和员工花名册的名字要完全一致。
2、准备代码
插入照片的话我们需要有代码,代码通用格式如下:
<table><img src="地址\*.jpg" width="照片宽" height="照片高">
地址:代表照片所存放的文件夹路径。本例中存放地址为:C:\Users\Administrator\Desktop\新建文件夹
*:代表照片名称。
照片宽:代表照片的宽度,以像素为单位,本例为150
照片高:代表照片的高度,以像素为单位,本例为225
我们可以通过下面的方式批量生成代码:
在E2单元格输入公式
="<table><img src=""C:\Users\Administrator\Desktop\新建文件夹\"&B2&".jpg""width=""150""height=""225"">"
复制E2:E6数据区域,打开记事本,粘贴。
3、调整行高和列宽
选择数据区域的所有行,鼠标在两行之间变成黑色十字后向下拖动,拖动过程中会提示行高,括号内的为像素,到指定的像素高度放开鼠标。
删除E列的公式,同样调整列宽。
4、粘贴代码
将记事本中的代码复制,选中E2:E6区域,右键单击,选择性粘贴,然后选择”Unicode文本”
用VBA可以批量导入大量图片,前提是你将每个人的头像图片,以其名字命名,这样VBA可以按照你档案里的人员名字,匹配导入.给你段代码参考.具体要看你的员工信息表的格式才好调整。你也可以将文件模板上传到百度云然后共享出来,帮你弄好。Sub InsertPicture()
Dim MyShape As Shape
Dim r As Integer
Dim c As Integer
Dim PicPath As String
Dim Picrng As Range
With ActiveSheet
For Each MyShape In .Shapes
If MyShape.Type = 13 Then
MyShape.Delete
End If
Next
For r = 2 To .Cells(.Rows.Count,1).End(xlUp).Row Step 3
' For c = 1 To 8 step 2
PicPath = ThisWorkbook.Path&"\图片\" &.Cells(r, 6).Text &".png"
If Dir(PicPath) <>"" Then
Set MyShape =.Shapes.AddPicture(PicPath, False, True, 6, 6, 6, 6)
Set Picrng = .Cells(r, 9)
With MyShape
.LockAspectRatio =msoFalse
.Top = Picrng.Top + 1
.Left = Picrng.Left + 1
.Width =Picrng.Resize(3, 6).Width - 1.5
.Height = Picrng.Resize(3,6).Height - 1.5
.TopLeftCell =""
End With
Else
.Cells(r, 9) = "暂无照片"
End If
Next
'Next
End With
Set MyShape = Nothing
Set Picrng = Nothing
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)