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

网友投稿 807 2022-12-03

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

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

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

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

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

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

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

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

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Excel中不重复的人的姓名的VBA代码
下一篇:VBA关闭工作簿和退出Excel 代码
相关文章