对于大型的数据表要进行分类汇总,以前我采用“自动筛选”的办法来实现的,但这样既麻烦,又容易出现错误。经过摸索,发现用“宏”可以实现批量筛选和打印,一键搞定了分类汇总和打印!
一、数据汇总
选中F1002单元格(此处假定有1000条数据),输入公式:=SUBTOTAL(9,F3:F1002),确认一下,统计出“面积”总和。然后再次选中F1002单元格,将鼠标移至该单元格右下角,成细十字线状时,按住左键向右拖拉至H1002单元格,将上述公式复制到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”的目的是:在打印时,该按钮不被打印出来;否则(设置成True)按钮会打印到纸张上,影响表格效果。
双击刚才添加的命令按钮,再次进入“Visual Basic编辑”状态,将下述代码输入右侧的区域中:
Private Sub CommandButton1_Click()
分类汇总打印 '此处字符必须与上述宏名称一致
End Sub
输入完成后,关闭“Visual Basic编辑”窗口,返回工作表中。像调整图形大小一样,调整好命令按钮的大小,然后将其定位在表格的合适位置上,再按下“工具箱”上的“退出设计模式”按钮。
当需要分类打印时,只要单击表格中的“分类打印”按钮即可快速获得。