我们有一个文件名称为“导出图片”的Excel工作簿。工作簿内含一个工作表,在工作表的A列为对应图片的名称,B列为对应的图片。
我们想要实现:
将工作表B列的图片批量导出至电脑本地,并且每张图片的名称都以A列的名称内容命名。
解决这样的问题,还是用VBA代码快速的实现吧。
代码如下:
Sub main()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
shp.Copy
With ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart
.Parent.Select
.Paste
.Export "F:\" & shp.TopLeftCell.Offset(0, -1) & ".png"
.Parent.Delete
End With
Next shp
End Sub
01.进入VBA代码编辑器
鼠标右击工作表名称标签,点击【查看代码】命令(或按快捷键Alt+F11键)进入VBA代码编辑器的窗口。
02.复制并粘贴代码
复制上面的那段VBA代码并粘贴至VBA代码编辑器窗口内。
03.运行代码
点击代码器窗口上方的【运行-运行子过程/用户窗体】命令。
03代码释义
01.关于导出位置
代码:
.Export “F:\” & shp.TopLeftCell.Offset(0, -1) & “.png”
其中“F:\”表示导出的图片放置到电脑的硬盘F盘中。可根据实际情况进行修改。
02.关于图片格式
代码:
.Export “F:\” & shp.TopLeftCell.Offset(0, -1) & “.png”
其中 “.png”表示导出的图片为png格式后缀。可根据实际情况进行修改。
代码:
.Export “F:\” & shp.TopLeftCell.Offset(0, -1) & “.png”
其中Offset(0, -1)表示:以图片列为基准列,名称列位于图片列左侧,Offset的第二参数为负数;名称列位于图片列右侧,Offset的第二参数为正数。此例中,因为名称列位于图片列左侧的第一列,故Offset的第二参数为-1,即Offset(0, -1)。需根据实际情况进行修改。