用于处理图表&图形的VBA代码大全1

2023-08-29 21:13:09 浏览数 (2)

标签:VBA

图表和图形是Excel最好的功能之一,它们非常灵活,可以用来进行一些非常高级的可视化。本文可以作为在Excel中使用VBA绘制图表的指南。

本文中的代码示例演示了使用VBA处理最常见的图表选项,很好地利用这些代码,自动创建和修改图表。

注意,在Excel 2013中,对图表引擎和文档对象模型进行了许多更改,例如AddChart2方法取代了AddChart方法。因此,本文中提供的一些代码可能无法用于Excel 2013之前的版本。

Chart对象、图表和图表工作表

在Excel的对象层次模型中,许多东西存在于许多地方。例如,图表可以是工作表中的嵌入式图表,也可以是单独的图表工作表。

1.在工作表本身,可以找到图表对象。每个图表对象(ChartObject)中都有一个图表。实际上,ChartObject是一个包含图表的容器。

2.图表也是一个独立的工作表,它周围没有图表对象(ChartObject)。

要更改图表标题文本,将以不同的方式引用两种类型的图表:

1.工作表中的图表:

代码语言:javascript复制
Sheets(“Sheet1”).ChartObjects(“Chart 1”).Chart.ChartTitle.Text = “我的图表标题”

2.图表工作表

代码语言:javascript复制
Sheets(“Chart 1”).ChartTitle.Text = “我的图表标题”

编写代码以处理任一图表类型

如果想编写能够处理任何图表的代码,可以通过创建一个包含对图表的引用的变量来实现。

创建一个引用ChartObject内的图表的变量:

代码语言:javascript复制
Dim cht As Chart
Set cht = Sheets("Sheet1").ChartObjects("Chart 1").Chart

创建一个引用工作表内图表的变量:

代码语言:javascript复制
Dim cht As Chart
Set cht = Sheets("Chart 1")

现在,可以通过使用cht引用图表来为图表工作表或ChartObject中的图表编写VBA代码:

代码语言:javascript复制
cht.ChartTitle.Text = "我的图表标题"

从空白图表创建图表

代码语言:javascript复制
Sub CreateChart()
 Dim rng As Range
 Dim cht As Object
 '创建空白图表
 Set cht = ActiveSheet.Shapes.AddChart2
 '对图表声明数据单元格区域
 Set rng = ActiveSheet.Range("A2:B9")
 '添加数据到图表
 cht.Chart.SetSourceData Source:=rng
 '设置图表类型
 cht.Chart.ChartType = xlColumnClustered
End Sub

引用工作表中的图表

活动图表:

代码语言:javascript复制
Dim cht As Chart
Set cht = ActiveChart

指定名称的图表:

代码语言:javascript复制
Dim cht As Chart
Set cht = Sheets("Sheet1").ChartObjects("Chart 1").Chart

通过数字序号:

代码语言:javascript复制
Dim cht As Chart
Set cht = Sheets("Sheet1").ChartObjects(1).Chart

其中,1是第一个被创建的图表,2是第二个被创建的图表,依此类推。

遍历工作簿中的所有图表工作表

代码语言:javascript复制
Dim cht As Chart
For Each cht In ActiveWorkbook.Charts
 Call AnotherMacro(cht)
Next cht

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

0 人点赞