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) 说明:改变T14单元格中的内容时,图表的数据区域随之改变。本例中的图表名称为“图表 1”,需根据实际进行更改。查看图表名称的方法是: Excel 2003:按住Ctrl键单击图表,在名称框中即可看到所选图表的名称。 Excel 2007/2010:选择图表,在“图表工具-布局”选项卡的“属性”组中即可看到图表名称。 关闭VBA编辑器,返回Excel工作表界面,选择T14单元格中的不同系列即可在图表显示相应类别的数据。 |