用图表表示数据时,有的数据适合于用柱形图,有的适合于用折线图,还有的适合于用饼图。把每样数据用不同的图表表现出来,比较繁杂。若用一个图表,根据下拉列表框选择用不同的图表类型表示不同的数据,将会显得紧凑有序。用定义名称生成图表数据源,借助简单VBA更改图表类型,即可实现这样的效果。
首先,在存放图表数据源工作表的空白位置输入下拉菜单所需要的内容。如在P1:P2单元格中输入月份、地区。选择“开发工具”选项卡,点击“插入→ActiveX控件→组合框”,在工作表合适位置画出一个组合框,选中组合框,点击“属性”,在它的属性窗口,LinkedCell处输入“Q1”,ListFillRange处输入“P1:P2”,点击BackColor设置它的背景色。还可按需设置它的其他属性。这样,该组合框下拉内容就是P1:P2所显示的内容,点击组合框的内容,就会存放在Q1单元格中(图1)。
选择“公式”选项卡,点击“名称管理器”,新建如图所示的6个名称并设置对应的引用位置(图2)。这样,就可以根据下拉列表的选择确定图表的数据源了。
接下来,选择一个空白单元格,插入一个带数据标记的折线图。右击这个空白图表,选择“选择数据”,在弹出窗口左侧图例项处点击“添加”,在弹出窗口的系列名称处输入“总计”,在系列值处输入“=Sheet1!Y_tmp”,在水平轴标签处点击“编辑”,在弹出窗口输入“=Sheet1!X_tmp”。
选择“开发工具”选项卡,在左侧VBAProject窗口中双击图表所在工作表,在右侧代码区输入如图所示代码(图3)。这样,图表类型就会跟随下拉列表的变化而改变了。
小提示:
图表类型代码可通过宏录制的方法得到。先建立一个柱形图,点击“开发工具→录制宏”,将柱形图更改为折线图,再点击“停止录制”,点击“宏”,在弹出窗口选择录制的宏名称,点击“编辑”,就可以看到更改后的图表类型代码了。知道代码后,将录制的宏删除掉。
最后,将组合框置于顶层,拖放它到图表的合适位置就可以了(图4)。