首页 > Excel专区 > Excel函数 >

Excel VBA设置图表动态数据源实例教程

Excel函数 2023-01-13

Excel图表的数据源通常为一个连续区域,但有时会遇到图表数据源区域不连续,且需要动态改变的情况。例如下面的某公司人员基本情况汇总表,B列为部门名称,C至S列分别为“性别”、“年龄”、“学历”、“职称”等不同类别数据的汇总,如果将这些数据同时显示在一个图表中,显然不便观察和比较数据,这时可以用VBA来动态改变数据源,单独对各个类别进行显示。

具体的方法是:先在表格中创建一个下拉列表,然后通过下拉列表选择不同的系列,通过VBA代码改变图表数据区域,让图表中的数据随之改变。下面以在Excel 2003中绘制柱形图为例说明如下:

1.设置下拉列表。设置下拉列表的方法有很多,这里用数据有效性来设置。选择某个单元格,如T14,单击菜单“数据→有效性→设置→序列”,在“来源”下输入“性别,年龄,学历,职称”(不含引号)后确定,这样就在T14单元格中通过数据有效性设置了一个下拉列表。

2.插入图表。选择B3:D11区域,即“部门”和第一个类别所在区域“性别”,单击菜单“插入→图表→柱形图→簇状柱形图”,单击“完成”插入一个包含“男”、“女”两个系列的柱形图。

3.输入VBA代码。按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下列代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$T$14" Then
Dim RngStr As String
Select Case Target.Value
Case "性别"
RngStr = "b3:b11,c3:d11"
Case "年龄"
RngStr = "b3:b11,e3:i11"
Case "学历"
RngStr = "b3:b11,j3:n11"
Case "职称"
RngStr = "b3:b11,o3:s11"
End Select
ChartObjects("图表 1").Chart.SetSourceData Source:=Range(RngStr)
End If
End Sub

说明:改变T14单元格中的内容时,图表的数据区域随之改变。本例中的图表名称为“图表 1”,需根据实际进行更改。查看图表名称的方法是:

Excel 2003:按住Ctrl键单击图表,在名称框中即可看到所选图表的名称。

Excel 2007/2010:选择图表,在“图表工具-布局”选项卡的“属性”组中即可看到图表名称。

关闭VBA编辑器,返回Excel工作表界面,选择T14单元格中的不同系列即可在图表显示相应类别的数据。


Copyright © 2016-2023 office学习教程网 office.tqzw.net.cn. All Rights Reserved.