excel批量导出图片&批量导入图片

1,038 阅读1分钟

使用VBA进行excel中图片的导出,并已某列的字段值命名图片;使用标签的选择性粘贴进行图片的批量导入。实现了导出和导入的匹配性导入。

1.图片的批量导出

Sub main()

Dim shp As Shape

For Each shp In ActiveSheet.Shapes

'这里也可以用shp.Type=msoPicture去判断是否是图片后,再进行复制
'设置导出图片的缩放比例
shp.ScaleHeight 0.75, msoTrue
shp.ScaleWidth 0.75, msoTrue

shp.Copy

With ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart

.Parent.Select

.Paste

'设置图片名称为相对于图片所在的位置的单元格的值
.Export "C:\Users\li\Desktop\excel练习\跨表匹配图片\" & shp.TopLeftCell.Offset(0, -1) & ".png"

.Parent.Delete

End With

Next shp

End Sub

2.图片的批量导入

(1)生成导入图片的标签

在需要导入的图片的那个单元格输入下面公式,图片路径为刚才导出的图片的路径,文件名为这个表中的某列字段值(和上面的列字段值匹配),回车,然后下拉,生成所有的标签。

="<table><img src=C:\Users\li\Desktop\excel练习\跨表匹配图片\"&b3 & ".png width=140 height=140>"

(2)使用标签导入图片

复制(1)得出的那一列的值到一个新的文本文件中,清空所有要填入图片的单元格的内容,复制那个文本文件中的内容,选中导入图片的第一个单元格,右击,选择“选择性粘贴”,选择unicode,确定,图片就导入到对应的单元格了,调整图片所在的行高列宽,完成。

参考链接:

www.renrendoc.com/paper/16700…

club.excelhome.net/thread-4793…

www.zhihu.com/question/52…