|
工作需要,在 Excel 表中将不同的 SKU 对应的图片贴入表格内,刚开始啥都不懂,一张张贴图,累死个人,后来接触了 VBA,也去网上找了资料,原来是可以用宏批量贴图的,真让我大惊失色,开心死了。
下面是对应的宏(VBA),我自己稍微调整了,基本上不懂的人,也可以用,只要按照步骤来。
'使用方法
'1、打开表格,按 ALT+F11,打开宏界面;
'2、找到左上角,要插入图片的工作表,双击打开;
'3、将下方宏代码,粘贴入空白处,按F5运行,插入图片即可;
Sub 图片导入()
Dim Sheetname, Path1, Column1, Variable1
Dim Variable2
Dim Rng, rngs As Range
'输入需要用到的关键指标
Sheetname = InputBox("请输入工作表名称(非文件名):")
Path1 = InputBox("请输入图片路径(放在什么盘 / 什么文件夹):")
Column1 = InputBox("依据哪一列商品编码匹配图片(输入编码列的第一个单元格,格式如:A3 或 C4等):")
Variable1 = Left(Column1, 1)
Variable2 = InputBox("请输入图片存放在表格位置(以商品编码列 0 做基准,向左为负 / 向右为正偏移,格式如:-1 或 2等):")
On Error Resume Next
'删除原有表格内的图片
For Each shap In Sheets(Sheetname).Shapes
If shap.Type <> 8 Then shap.Delete
Next shap
&#39;求出编码的最后一行
lastrow = Range(Variable1 & Cells.Rows.Count).End(xlUp).Row
&#39;for循环一一匹配图片
For Each Rng In Sheets(Sheetname).Range(Column1 & &#34;:&#34; & Variable1 & lastrow)
Set rngs = Rng.Offset(0, Variable2)
A = Path1 & &#34;\&#34; & Rng & &#34;.jpg&#34;
Sheets(Sheetname).Shapes.AddPicture A, True, True, rngs.Left + 3, rngs.Top + 3, rngs.Width - 6, rngs.Height - 5
Next Rng
MsgBox &#34;图片导入成功&#34;
End Sub
具体运行步骤:
第一步:填入工作表名

第二步:

第三步:输入要匹配的第一个单元格

第四步:因为图片要放在 C 列,所以往右偏移 2。

最后:插入成功

具体代码也比较简单,如有疑问,可以私信我。
---我只是需要一盏灯,一架钢琴,一支麦克风--- |
|