分数统计不用愁
办公族
昨天王老师找我,让我帮她写个在VBA中用FreQuency函数统计分数段的小程序。
问题分析
首先我们看一下工作表结构,其中有姓名、学号、英语三个字段,我们要统计出C2:C6区域内的数据:
1. 首先在A10:A14单元格区域内输入分数段标准:59、69、79、89、100,马上就可根据此标准来统计,并且这标准可以随时变动,很方便,不需要再去更改每个公式内的具体值。
2. 现在需要用鼠标选中区域C10到C14,在编辑栏输入“=FreQuency(C2:C6,A10:A14)”,其中C2:C6是需要统计的数据,A10:A14是统计标准。
3. 由于FreQuency是数组公式,所以需要按住“Crtl+Shift+Enter”组合键产生数组公式“={FreQuency(C2:C6,a10:a14)}”,把数组公式作为一个整体来计算。在理顺思路后,下面就着手用VBA来实现这个过程,看来问题的关键是如何在VBA中来描述这个数组公式。
解决问题
首先启动Excel,打开需要统计的工作表。依次选择“视图→工具栏→控件工具箱”,单击选中命令按钮控件,在工作表中拖动画出命令按钮,默认的名称是“CommanButton1”,双击该命令按钮,打开Visual Basic编辑器窗口,在“Private Sub CommandButton1 Click()”与“End Sub”之间输入以下代码。
Sub plmm()
Sheets("sheet1").[b8] = "分数段"
Sheets("sheet1").[c8] = "人数"
Sheets("sheet1").[b10] = "0-59"
Sheets("sheet1").[b11] = "60-69"
Sheets("sheet1").[b12] = "70-79"
Sheets("sheet1").[b13] = "80-89"
Sheets("sheet1").[b14] = "99-100"
Range("c10:c14").Select
Selection.FormulaArray = "=FreQuency((c2:c6),(a10:a14))"
End Sub
代码输入完毕以后,首先在Visual Basic编辑器窗口单击工具栏中的三角形运行按钮,确认程序可以运行通过了,按“Alt+F11”组合键返回Excel主窗口,单击工作表中的按钮,所有的统计结果就全部自动出现了,以后如果统计的数据范围、分数标准有所变动,我们只需要在VBA中作少许变动就行了,这下王老师的工作负担可减轻了不少。