批量导出Excel图表为图片 您所在的位置:网站首页 怎样把表格数据转为柱状图表 批量导出Excel图表为图片

批量导出Excel图表为图片

2023-12-18 15:53| 来源: 网络整理| 查看: 265

在其他应用程序中经常需要使用Excel中的图表,同为Office家族兄弟的PowerPoint和Word当然是大力支持了,拷贝粘贴将完成了,更新数据后还可以刷新图表,但是会受到一些影响,例如图表的配色会跟随PowerPoint主题配色,图表的显示效果可能就完全不同了。 在这里插入图片描述

为了避免这种问题,最好的方法就是将图表导出为图片文件,再插入到其他应用程序中,这样所有的可视化效果就固定下来了。 在Excel中在图表上右击,选择“导出为图片…”命令,选择保存目录,并指定图片文件名称将可以了,操作起来并不复杂,但是如果Excel文件中有大量图表,都需要导出,手工操作就略显麻烦了,这时VBA就可以派上用场了。 示例Excel文件中的有3个图表,如下所示。 在这里插入图片描述 运行如下代码可以将图表导出为PNG图片,文件名称为数字顺序编号,从零开始。

Sub Demo1() Dim objChart As ChartObject Dim i As Integer For Each objChart In ActiveSheet.ChartObjects objChart.Select ActiveChart.Export Filename:=ThisWorkbook.Path & "\" & _ i & ".PNG", FilterName:="PNG" i = i + 1 Next End Sub

【代码解析】 第4~9行代码为For…Next循环结构遍历工作表中的图表对象(ChartObject)。 第5行代码选中图表,注意只要ActiveChart对象才具备Export方法,对于普通的ChartObject对象无法使用Export方法。 第6行代码导出图片文件,指定目录为工作簿所在的当前目录,FilterName参数指定文件格式。 第8行代码循环变量加一,作为下一个图片文件的名称。

上述代码实现了一键快速导出,但是文件名称是数字编号,只能打开图片才能确定和图表的对应关系,有些不方便,对代码过程略加修改,可以使用图表的标题作为文件名,这样图片内容就一目了然。

Sub Demo2() Dim objChart As ChartObject Dim i As Integer For Each objChart In ActiveSheet.ChartObjects objChart.Select ActiveChart.Export Filename:=ThisWorkbook.Path & "\" & _ objChart.Chart.ChartTitle.Caption & ".PNG", FilterName:="PNG" i = i + 1 Next End Sub

【代码解析】 第7行代码使用objChart.Chart.ChartTitle.Caption获取活动图标的标题文字,并作为文件名,文件列表如下图所示。 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有