首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel VBA 录制宏实例分析

Excel VBA 录制宏实例分析

——VBA操作图表

Excel图表是Excel的一个重要部件,通过录制Excel宏是熟悉图标各个部分组成结构的最好方法之一。

下面我们结合实例介绍如何用VBA操纵Excel图表组件。

在Excel中,同样的数据可能有不同的图示方法。比如下面的数据,我们既可以用柱形图表示,以强调不同数据点之间的对比;也可以使用折线图,以强调事物的发展趋势。我们的目标:用VBA控制图表的类型,允许用户自己决定采用何种图表展示数据。

我们来通过录制宏,寻找解决上述问题的思路。

选择“数据区域”,单击“开发工具”——“代码”功能组中的“录制宏”按钮,在“录制新宏”对话框中保持默认设置,如图所示。

注意:此后我们对Excel的每一步操作都会被Excel宏记录下来,因此要小心操作,尽量减少一些不必要的动作。

选中图表所需的数据区域,然后单击“插入”——“图表”功能组中的“柱形图”,选择“二维柱形图”分组中的第一个图表类型,如图所示:

至此,我们得到了柱状图样式的图表。由于我们打算用VBA控制Excel图表的类型,所以下一步录制的内容实在Excel界面中改变图表的类型,操作如下:

右键单击图表中的空白处,在弹出的快捷菜单中选择“更改图表类型”,在“更改图表类型”在“更改图表类型”的对话框中选择“折线图”中的第一个图表类型,然后单击“确定”按钮,如图所示:

现在柱状图变成了折线图。到目前为止,Excel已经为我们录制了Excel图表由柱形图变成折线图的整个过程,可以停止录制宏了。单击“开发工具”——“代码”功能组中的“停止录制”按钮停止录制宏。

下面我们对宏所录制的VBA代码进行分析。按快捷键“ALT+F11”进入VBA开发环境,在“模块1”中我们看到了刚刚录制的VBA代码,如图所示:

对照我们刚才录制宏的动作,这段代码理解起来并不困难。第一句代码的功能是“增加一个图表”;第二句代码的功能是“设定图表类型”;第三局代码的功能是“指定图表数据源”;第四局代码的功能是“重新设定图标的类型为折线图”。

图标已经制作完成,通过VBA代码我们打算实现的目标是,可以通过下拉选项(或其他方式)控制该图标的类型。因此,还需要知道如何用VBA选定特定的图表,我们使用录制宏的功能,做一个该图标的动作,然后停止录制。选择特定图表的VBA代码如下:

你是否注意到,在制作图表时Excel会自动给图表制定一个名称,当选中图表时,这个名称可以在Excel编辑栏左侧的名称栏看到,如图,我们可以在VBA代码中使用这个名称来引用特定的Excel图表。

现在,在图表所在工作表的A1单元格上,我们利用Excel的数据有效性技术,设计一个下拉列表框,其中有两个选项:柱形图和折线图。下拉列表框的设计方法如下:

选择图表所在工作表的A1单元格。

单击“数据”——“数据工具”功能组中的“数据有效性”,在“数据有效性”对话框中,在“允许”下拉列表中选择“序列”,在“来源”文本框中输入“柱形图,折线图”(注意:“柱形图”和“折线图”中间用西文的逗号分隔;对于Office2016以上版本,“数据有效性”在“数据验证”选项卡下),然后单击“确定”按钮,如图所示:

这时单击A1单元格时,则会出现一个下拉箭头,我们可以在下拉选项中进行选择,如图所示。我们的目的是,用这两个选项控制当前工作表的图表类型。

现在我们对上面录制的第一个宏的VBA代码进行修改,修改后的代码如下:

在上面的代码中,橙色直线部分,是我们对代码进行修改的位置。我们通过一个条件判断结构来根据“A1”单元格的值,来进行图表类型的更改。

现在我们为了使用方便,在屏幕上添加一个按钮,该按钮用于触发代码的执行。单击“开发工具”——“控件”功能组中的“插入”——“表单控件”——“按钮”,然后按住鼠标左键在当前工作表的合适位置或一个按钮,如下图所示:

当松开鼠标左键时,弹出“指定宏”对话框,我们刚才修改过的“宏1”会显示在“宏名”列表中,选择“宏1”,然后单击“确定”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190815A0J6CA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券