专栏名称: 完美Excel
Excel与VBA技术学习与实践
目录
相关文章推荐
Excel之家ExcelHome  ·  运用AI实现Excel和PPT增效 ·  2 天前  
Excel之家ExcelHome  ·  几个Excel技巧,操作简单效果好 ·  4 天前  
Excel之家ExcelHome  ·  一分钟搞定:最高、最低和平均值 ·  3 天前  
Excel之家ExcelHome  ·  六个Excel序号技巧 ·  5 天前  
完美Excel  ·  避免#DIV/0!错误 ·  1 周前  
51好读  ›  专栏  ›  完美Excel

使用VBA添加图表

完美Excel  · 公众号  · Excel  · 2024-11-05 05:34

正文

标签:VBA图表编程

Excel中,有几种在工作表中添加图表的VBA方法,下面逐一介绍。

Charts.Add

这是最老的添加图表的VBA语法。原先只有单独的图表,后来演变成了图表工作表。图表工作表是工作表上没有行、列或单元格的独立图表。现在应该是不常用了,通常的做法是在一个工作表上放几个图表,这样会与绘制的数据放在一起,方便对照查看。

VBA语法如下:

Charts.Add([Before], [After], [Count])

下面的代码,将图表从其图表工作表移动到工作表Sheet1上。

ActiveChart.Location where:=xlLocationAsObject, Name:="Sheet1"

可选参数允许指定在哪个工作表之前或之后添加图表工作表,以及插入多少个图表。如果未指定任何内容,则会在当前工作表之前插入一个图表工作表。插入的图表类型使用默认图表类型,除非定义了其他默认图表类型。

ChartObjects.Add

ChartObject是在工作表上包含嵌入式图表的形状。此方法在指定的工作表上插入这样的ChartObject。其语法如下,所有的参数都是必需的:

ActiveSheet.ChartObjects.Add(Left, Top, Width, Height)

此方法也是一种老方法,建议不应在新代码中使用。图表类型为默认图表类型(簇状柱形图),是Excel 2007/2010图表样式库中默认图表类型的第一种样式。

Shapes.AddChart

此方法最先在Excel 2007中引入,是对ChartObjects.Add方法的改进。其语法中所有参数都是可选的,还可以指定图表类型,如果省略,则插入默认图表。如果不指定其大小,则会生成默认的5英寸宽3英寸高的图表。如果不指定位置,新图表将位于活动窗口的中心。

其语法如下:

Shapes.AddChart([xlChartType], [Left], [Top], [Width], [Height])

添加一个包含图表的形状与添加包含图表的ChartObject没有什么不同。虽然比ChartObjects.Add有所改进,通过Shapes.AddChart生成的图表使用Excel 2007/2010图表样式库中其图表类型的第一种样式。

Shapes.AddChart2

建议使用Shapes.AddChart2方法来在工作表中添加图表。

Excel 2013中引入的此方法改进了Shapes.AddChart方法,包含两个额外的可选参数:Style参数和NewLayout参数。可以指定图表类型;如果省略,则使用默认图表类型。可以指定图表样式;如果省略,则应用所创建的图表类型的默认样式。如果不指定图表大小,则会生成默认的5英寸宽3英寸高的图表。如果不指定位置,图表将位于活动窗口的中心。

其语法如下:

Shapes.AddChart2([Style], [xlChartType], [Left], [Top], [Width], [Height], [NewLayout])

如果参数NewLayoutTrue,图表将使用新的布局功能,意味着始终会有图表标题,并且只有在初始图表中有两个或多个系列时才有图例。

Charts.Add2

此方法也在Excel 2013中引入,看起来很像Charts.Add,并添加了NewLayout参数。它插入一个图表工作表,必须将其移动到相应的工作表中。插入的图表具有默认类型(例如,簇状柱形)。

其语法如下:

Charts.Add2([Before], [After], [Count], [NewLayout])

如果参数NewLayoutTrue,则图表将使用新的布局功能,意味着始终会有图表标题,并且只有在初始图表中有两个或多个系列时才有图例。

如果想要一张图表工作表,一般不会使用Charts.Add2,通常会使用Shapes.AddChart2,使用喜欢的样式和类型创建一个嵌入式图表,然后将图表移动到新的图表工作表中。

ActiveSheet.Shapes.AddChart([Style],[XlChartType]).Location _ Where:=xlLocationAsNewSheet

示例

下面的代码插入图表。首先声明一个图表变量,然后将插入的图表给其赋值,最后修改该图表的属性。

Dim cht As Chart

Set cht = Worksheets("Sheet1").Shapes.AddChart2 _

(332, xlLineMarkers, 100, 100, 360, 216).Chart

With cht

' 调整数据

' 修改图表格式和属性

End With

注意,代码中332代表带数据标记折线图。

推荐文章
Excel之家ExcelHome  ·  运用AI实现Excel和PPT增效
2 天前
Excel之家ExcelHome  ·  几个Excel技巧,操作简单效果好
4 天前
Excel之家ExcelHome  ·  一分钟搞定:最高、最低和平均值
3 天前
Excel之家ExcelHome  ·  六个Excel序号技巧
5 天前
完美Excel  ·  避免#DIV/0!错误
1 周前
王冠雄频道  ·  从FISE再入蜀,看新青年文化流行趋势
8 年前