问题
如下工作表,如何将图片一次导出?
韩老师从两个不同的要求来解决这个问题:
一:只导出图片,不限定图片命名。
二:导出图片,同时将图片按B列“名称”重命名。
解决方法
一:只导出图片,不限定图片命名
这种导出方式很简单,只要把Excel另存为网页格式(*.htm,*html)就可以了。
选择“文件”菜单“另存为”命令,保存类型选择为“网页(*.htm,*html)”,保存位置默认为与有图片的Excel文件为同一个文件夹,如下图:
这样,会在Excel文件所在文件夹中出现一个与Excel工作簿同名的网页与文件夹:
二:导出图片,同时将图片按B列“名称”重命名
如果导出图片的同时,按照某列相应行单元格值来命名,比如本题要求将图片按B列“名称”重命名,就要用到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
如下图:
点击工具栏中的运行,即可将图片导出到文件夹:
打开文件夹,即是命名后的图片:
这样导出的图片更规范,文件夹内也更整洁干净。
不过,利用VBA导出图片,如果下次还想再次导出图片,该工作簿必须存为“启用宏的工作簿”。
有关图片处理,请参阅