实例需求:工作表中的表格内容(A1:C8)另存为图片。
这个很难吗?确实不难。一定要用VBA吗?不一定呦。先来看看如下操作,在工作表中选中相应的单元格区域,依次点击【开始】选项卡的【复制】下拉按钮->【复制为图片】命令;然后打开图片编辑器,粘贴图片;另存为图片文件。
貌似这个操作并不麻烦,如果老板需要你把100个工作表都这样处理一下,求此时的心理阴影面积!
VBA就是来解救你的,翠花,上代码… …
Sub SaveRangeAsPic()
Dim strPath As String
Dim Rng As Range
strPath = ThisWorkbook.Path
Set Rng = Range("A1:C8")
Rng.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, Selection.Width, Selection.Height).Chart
Selection.Delete
.Parent.Select
.Paste
.Export strPath & "\" & Format(Now(), "yyyymmddhhmmss") & ".jpg", "JPG"
.Parent.Delete
End With
End Sub
【代码解析】
第6行代码实现上述手工操作时将单元格区域复制为图片。
第7行代码将剪贴板中的图片粘贴到工作表中,用户获取图片的宽度和高度。PowerPoint中图片可以直接另存为单独文件,但是Excel中不支持这个功能,所以需要借助Chart对象。
第8行代码添加一个Chart对象。
第9行代码删除工作表中粘贴的图片。
第10行代码选中ChartObject对象,此行代码是必须的,否则导出的图片文件是空白的。
第11行代码粘贴图片。
第12行代码将图片导出为文件,保存在当前目录中。
第13行代码删除ChartObject对象。