办公问答网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 91|回复: 18

Excel 表格插入图片的宏(VBA)

[复制链接]

2

主题

9

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2023-1-5 15:06:42 | 显示全部楼层 |阅读模式
工作需要,在 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

'求出编码的最后一行
lastrow = Range(Variable1 & Cells.Rows.Count).End(xlUp).Row
'for循环一一匹配图片
For Each Rng In Sheets(Sheetname).Range(Column1 & ":" & Variable1 & lastrow)
    Set rngs = Rng.Offset(0, Variable2)
    A = Path1 & "\" & Rng & ".jpg"
    Sheets(Sheetname).Shapes.AddPicture A, True, True, rngs.Left + 3, rngs.Top + 3, rngs.Width - 6, rngs.Height - 5
Next Rng

MsgBox "图片导入成功"
End Sub

具体运行步骤:
第一步:填入工作表名


第二步:


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


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


最后:插入成功


具体代码也比较简单,如有疑问,可以私信我。

---我只是需要一盏灯,一架钢琴,一支麦克风---
回复

使用道具 举报

3

主题

9

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-1-5 15:07:12 | 显示全部楼层
感谢分享啊。但我实际使用中发现图片不会等比缩放去适应单元格,而且有的贴图会超出格子。求解啊,麻烦了
回复

使用道具 举报

1

主题

4

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2023-1-5 15:07:58 | 显示全部楼层
图片贴进去后,选中图片,点击右键,选中大小和属性,属性里选中随单元格改变位置和大小。
回复

使用道具 举报

2

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2023-1-5 15:08:24 | 显示全部楼层
超赞!找了很多代码都没搞定,用楼主的代码搞定啦!感谢分享
感谢
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-1-5 15:09:04 | 显示全部楼层
啊啊太棒了!超级有用
回复

使用道具 举报

4

主题

8

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2023-1-5 15:10:04 | 显示全部楼层
横向插入也可以实现吗?
回复

使用道具 举报

1

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2023-1-5 15:10:41 | 显示全部楼层
可以,需要修改宏。
回复

使用道具 举报

0

主题

5

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-1-5 15:11:29 | 显示全部楼层
大神,可以同时贴四列吗?
回复

使用道具 举报

1

主题

6

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-1-5 15:11:37 | 显示全部楼层
非常感谢,请问我导入进去的合同图片在电子表格内打开放大不清楚,看不清任何字,请问怎么解决,谢谢
回复

使用道具 举报

2

主题

10

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2023-1-5 15:12:16 | 显示全部楼层
大神,横向的请问要怎么修改呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|办公问答网

GMT+8, 2025-7-5 17:34 , Processed in 0.094181 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Templated By 【未来科技 www.veikei.com】设计

快速回复 返回顶部 返回列表