16.3 如何快速获得创建数据透视表的代码

对于没有任何编程经验的VBA学习者来说,如何利用代码操作相关对象实现自己的目的是一个非常棘手的问题。幸运的是Excel提供了“宏录制器”来帮助用户学习和使用VBA。宏录制器是一个非常实用的工具,可以用来获得VBA代码。

宏录制器与日常生活中使用的录音机很相似。录音机可以记录声音和重复播放所记录的声音,宏录制器则可以记录Excel中的绝大多数操作,并在需要的时候重复执行这些操作。对于一些简单的操作,宏录制器产生的代码就足以实现Excel操作的自动化。

示例16.1 录制创建数据透视表的宏

步 骤1img01

打开示例文件“录制创建数据透视表的宏.xlsm”,在Excel窗口中单击【开发工具】选项卡的【录制宏】按钮,在弹出的【录制新宏】对话框中,修改【宏名】为“Create FirstPivotTable”,修改快捷键为<Ctrl+Q>,单击【确定】按钮关闭【录制新宏】对话框。

注意img01

请勿使用Excel的系统快捷键作为宏代码的快捷键,例如<Ctrl+C>,否则该快捷键将被关联到当前代码,也就是说原有系统快捷键的功能将失效。

在开始录制宏之后,【代码】组中的【录制宏】按钮,将变成【停止录制】按钮,如图16-3所示。

img330a

图16-3 【停止录制】按钮

步 骤2img01

单击“数据源”工作表标签,使该工作表成为活动工作表,单击数据区域中的任意单元格(如B3),如图16-4所示。

img330b

图16-4 开始录制宏

步 骤3img01

单击【插入】选项卡的【数据透视表】按钮,在弹出的【创建数据透视表】对话框中,选择【现有工作表】单选钮。

步 骤4img01

单击【位置】文本框右侧的折叠按钮,单击“数据透视表”工作表标签,使该工作表成为活动工作表,选中A3单元格,再次单击折叠按钮返回到【创建数据透视表】对话框,单击【确定】按钮关闭【创建数据透视表】对话框,如图16-5所示。

活动工作表中新创建的空白数据透视表如图16-6所示。

步 骤5img01

在【数据透视表字段列表】对话框中分别勾选“大类”、“单台数量”和“含税金额”字段的复选框。“大类”字段将出现在【行标签】区域,“单台数量”和“含税金额”字段将出现在【∑数值】区域。单击“型号”字段,将它拖动到【报表筛选】区域,最终完成的数据透视表如图16-7所示。

img331a

图16-5 创建数据透视表

img331b

图16-6 新创建的空数据透视表

img331c

图16-7 调整数据透视表布局

步 骤6img01

在【开发工具】选项卡中单击【停止录制】按钮,结束当前宏的录制。单击【开发工具】选项卡的【宏】按钮,在弹出的【宏】对话框中保持默认选中的“CreateFirstPivotTable”,单击【编辑】按钮关闭【宏】对话框,如图16-8所示。

img332a

图16-8 【宏】对话框

在弹出的Microsoft Visual Basic编辑界面(简称VBE窗口)的代码窗口中将显示录制的宏代码,如图16-9所示。

img332b

图16-9 VBE代码窗口中的代码

VBE代码窗口中的代码:

img332c

img333

代码解析:

第2行代码利用PivotCache对象的CreatePivotTable方法创建数据透视表。

第5行代码到第18行代码用于调整数据透视表布局,在数据透视表中添加相应字段。对于此部分代码的详细讲解请参阅后续章节的讲解。

注意img01

使用宏录制器产生的代码不一定完全等同于用户的操作,也就是说在录制宏时,某些Excel操作并不产生相应的代码,这是该工具的局限性,但在大多数情况下,它工作得很出色。

示例16.2 运行录制的宏代码

运行录制宏生成的代码,将在工作簿中创建一个数据透视表。

步 骤1img01

打开示例16.1的示例文件“录制创建数据透视表的宏.xlsm”,删除“数据透视表”工作表中的数据透视表。

步 骤2img01

单击【开发工具】选项卡的【宏】按钮,在弹出的【宏】对话框中保持默认选中的“CreateFirstPivotTable”,单击【执行】按钮关闭【宏】对话框,如图16-10所示。

“CreateFirstPivotTable”过程代码将在“数据透视表”工作表中创建一个数据透视表,如图16-11所示。此数据透视表与图16-7所示的手工创建的数据透视表完全相同。

img334a

图16-10 运行宏代码

img334b

图16-11 运行宏代码创建的数据透视表

示例16.3 修改执行宏代码的快捷键

利用快捷键可以快速地执行相关代码,在工作簿窗口中按<Ctrl+Q>组合键,Excel将运行CreateFirstPivotTable宏创建数据透视表。如果录制宏时用户没有设置快捷键或者希望修改快捷键的设定,请按照如下步骤进行修改。

步 骤1img01

单击【开发工具】选项卡的【宏】按钮,在弹出的【宏】对话框中保持默认选中的“CreateFirstPivotTable”,单击【选项】按钮。

步 骤2img01

在弹出的【宏选项】对话框中,用户可以在【快捷键】下方的文本框中进行设置和修改,单击【确定】按钮关闭【宏选项】对话框。

步 骤3img01

返回到【宏】对话框,单击【取消】按钮关闭【宏】对话框,如图16-12所示。

img334c

图16-12 修改调用宏代码的快捷键