分数统计不用愁

办公族

昨天王老师找我,让我帮她写个在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中作少许变动就行了,这下王老师的工作负担可减轻了不少。