生活中经常有一些体育项目,作为学生有一年一度的体育测试,还有田径赛等。人们常常是把体育成绩填到excel中,但是每次项目都很多,且每一个项目的评分标准都不一样,加上每次参加的人也是很多,如果用人工根据评分标准来计算成绩,那工作量是不能想像的。要是在excel中输入成绩了,对应的成绩就自动出来,会方便很多。下面是我写了一个简单的vba程序,实现该功能。
一个评分标准表:
在模块上写计算成绩的公共函数。
因为像跑步类型的体育项目是成绩越高,分数反而越低;而想仰卧起坐类型的体育项目是成绩越高,分数就越高;所以在公共模块里写了对应的两个公共函数。代码如下:
'公共函数
'像跑步类似的成绩越高分越低的
'currentColumn:当前成绩列.
'StandardColumn:当前评分标准列
'a:评分标准起始行
'b:评分标准起始行
'target:当前的sheet
'sheetName:当前评分标准的表名
Public Function autoCalculationASC(target As Range, sheetName As String, currentColumn As Integer, StandardColumn As Integer, a As Integer, b As Integer)
For i = a To b
'先判断成绩是否为空,接着判断评分表格是否为空,
'不为空则判断成绩是否和评分标准相同,
'不同则判断是否低于该表格的评分标准
If Cells(target.Row, currentColumn) = "" Then
Cells(target.Row, currentColumn + 1) = ""
Else
If Sheets(sheetName).Cells(i, StandardColumn) <> "" Then '判断是否为空
'判断是否超出范围
If Cells(target.Row, currentColumn) > Sheets(sheetName).Cells(b, StandardColumn) Then
Ce