excel区域如何导出为高清图片?VBA源码
▎具体需求
VBA中有时候需要将单元格区域批量的导出为图片,很多代码可以用,但是导出的图片不够清晰,在这里分享一段导出高清图片的代码。
▎具体代码
Sub 选中区域导出为高清图片()
'VBA说整理
Dim rng As Range '定义截图范围变量
Set rng = Selection '设置截图范围为选中区域
rng.CopyPicture xlPrinter, xlPicture '截图范围复制为图片,用的是CopyPicture命令,参数xlPrinter表示按打印效果复制, 参数xlPicture表示截取为图片格式,包括PNG\TIF等
With ActiveSheet.ChartObjects.Add(0, 0, rng.Width * 2, rng.Height * 2).Chart '新建一个临时图表区,用来储存图片
.Parent.Select '选中新建的绘图框,这是office2016版本新增的要求,没有这句会导致导出的图片是一片空白。
.Paste '粘贴复制后的图片
SaveName = Application.GetSaveAsFilename(InitialFileName:=Year(Date) & Month(Date) & Day(Date) & "导出结果", filefilter:="图片文件(*.png),*.png")
If SaveName <> "False" Then .Export SaveName, "PNG" '如果文件名不为空则导出png格式图片至指定位置
'.Export "C:\test.png", "png" '导出到固定路径
.Parent.Delete '删除该临时绘图框
End With
End Sub
高清图片的核心语句就是这两个参数:
xlPrinter, xlPicture
对应于手动操作就是这块:
▎运行效果
评论