对于大型数据表进行分类汇总,传统方法如“自动筛选”既繁琐又易出错。本文介绍如何利用Excel宏实现批量筛选和打印,一键完成分类汇总与打印任务。
一、数据汇总
选中F1002单元格(假设有1000条数据),输入公式:=SUBTOTAL(9,F3:F1002),统计“面积”总和。然后再次选中F1002单元格,将鼠标移至右下角成细十字线状时,按住左键向右拖拉至H1002单元格,复制公式以统计“造价”总和。
小提示:修改函数SUBTOTAL中的第一个参数(“9”),可实现求平均(AVERAGE—1)、计数(COUNT—2)等统计功能(详见函数帮助)。
二、编辑宏
切换到Sheet2工作表,在A1至A10单元格中输入工程“类型”名称(此处“1”和“10”与代码中的循环起止数值相同,如图1)。按下Alt+F11组合键进入Visual Basic编辑状态,执行“插入模块”命令,插入新模块(“模块1”)。将以下代码输入到模块1的编辑区域:

小提示:代码中英文单引号“'”及其后面的字符为注释,实际输入时可省略。
输入完成后,关闭Visual Basic编辑窗口,返回工作表。
三、制作按钮
执行“视图→工具栏→控件工具箱”命令,展开“控件工具箱”(图2),单击“命令按钮”按钮,在表格中拖拉出一个按钮。右击按钮,选择“属性”,展开属性对话框。切换到“按分类序”标签,展开“外观”选项,将“Caption”修改为“分类打印”。再展开“杂项”选项,将“PrintObject”设置为“False”。设置完成后关闭对话框。

小提示:将“PrintObject”设置为“False”可防止按钮被打印出来。
双击命令按钮,再次进入Visual Basic编辑状态,将以下代码输入右侧区域:
Private Sub CommandButton1_Click()
分类汇总打印 '此处字符必须与上述宏名称一致
End Sub
输入完成后关闭编辑窗口。调整按钮大小和位置,然后按下“工具箱”上的“退出设计模式”按钮。需要分类打印时,单击“分类打印”按钮即可快速完成。