EXCEL VBA 图片名批量插入为图片❀
该宏(脚本)可以根据Excel单元格中的图片名称
批量从本地位置找到图片
并插入到Excel中指定的单元格。
注:宏(脚本)可以将A列从A2往下的图片名称,自动查找指定目录中的对应图片,并放置到B列;需要其他格式、单元格位置、图片尺寸等请自行修改。(宏命令支持jpg、png图片)
效果示例❀
A
列为图片名称
,将从本地指定目录
插入对应图片到B
列
开发工具-->宏-->(填写宏名称)-->创建
创建一个宏命令
开发者工具-->宏-->(选择宏)-->运行
运行创建的宏命令
运行后的结果
获取文件名称❀
在文件目录下创建Bat
脚本,填写以下内容并运行
若在excel中已有文件名,则跳过该步骤
打开EXCEL的 [开发者工具]❀
开启开发者工具开始-->选项-->自定义工作区-->开发者工具
创建VBA宏❀
前往开发者工具创建一个VBA宏脚本开发工具-->宏-->(填写宏名称)-->创建
编写VBA宏❀
在弹出窗口填写以下代码
Sub 插入图片() '根据图片名称插入对应图片
Dim r As Long, i As Long
Dim path As String
r = ActiveSheet.[a65536].End(xlUp).Row
path = "D:\图片" '修改图片所在文件夹路径
Columns("B:B").ColumnWidth = 25 '修改图片宽度
Rows("2:65536").RowHeight = 150 '修改图片高度
For i = 1 To r
If Dir(path & "\" & ActiveSheet.Cells(i, 1) & ".jpg") <> "" Then
With ActiveSheet.Pictures.Insert(path & "\" & ActiveSheet.Cells(i, 1) & ".jpg").ShapeRange
.LockAspectRatio = msoFalse
.Left = ActiveSheet.Cells(i, 2).Left
.Top = ActiveSheet.Cells(i, 2).Top
.Height = ActiveSheet.Cells(i, 2).Height
.Width = ActiveSheet.Cells(i, 2).Width
End With
End If
If Dir(path & "\" & ActiveSheet.Cells(i, 1) & ".png") <> "" Then
With ActiveSheet.Pictures.Insert(path & "\" & ActiveSheet.Cells(i, 1) & ".png").ShapeRange
.LockAspectRatio = msoFalse
.Left = ActiveSheet.Cells(i, 2).Left
.Top = ActiveSheet.Cells(i, 2).Top
.Height = ActiveSheet.Cells(i, 2).Height
.Width = ActiveSheet.Cells(i, 2).Width
End With
End If
Next i
End Sub
运行宏❀
开发者工具-->宏-->(选择宏)-->运行