使用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…