一位粉丝朋友问了一个问题:
如何将工作表的图片批量导出,并重命名为某列对应行的内容?
比如下图:
要将工作表中的图片批量导出,并且重新命名为B列对应的名称。
VBA实现
在VBA代码窗口中输入如下代码:
Sub Rename()
On Error Resume Next
MkDir ThisWorkbook.Path & "图片"
For Each pic In Shapes
If pic.Type = msoPicture Then
RN = pic.TopLeftCell.Offset(0, -3).Value
pic.Copy
With ActiveSheet.ChartObjects.Add(0, 0, pic.Width, pic.Height).Chart '创建图片
.Parent.Select
.Paste
.Export ThisWorkbook.Path & "图片" & RN & ".jpg"
.Parent.Delete
End With
End If
Next
MsgBox "导出图片完成!"
End Sub
如下图:
在工作表中添加表单控件,右键指定宏Rename,如下两图:
点击控件,即可实现在该EXCEL文档所在的文件夹中新建一个“图片”文件夹,所以导出的图片实现重命名并保存在该“图片”文件夹中。如下图:
如果不知道控件怎么插入,怎么指定宏,请参考 。
---------------------------------