生活中经常有一些体育项目,作为学生有一年一度的体育测试,还有田径赛等。人们常常是把体育成绩填到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) = "" ThenCells(target.Row, currentColumn + 1) = ""ElseIf Sheets(sheetName).Cells(i, StandardColumn) <> "" Then                               '判断是否为空'判断是否超出范围If Cells(target.Row, currentColumn) > Sheets(sheetName).Cells(b, StandardColumn) ThenCells(target.Row, currentColumn + 1) = 0Exit ForEnd IfIf Cells(target.Row, currentColumn) = Sheets(sheetName).Cells(i, StandardColumn) Then                '判断是否和评分标准相等Cells(target.Row, currentColumn + 1) = Sheets(sheetName).Cells(i, 1)Exit ForElseIf Cells(target.Row, currentColumn) < Sheets(sheetName).Cells(i, StandardColumn) Then'是否是满分If i = 2 ThenCells(target.Row, currentColumn + 1) = Sheets(sheetName).Cells(2, 1)Exit ForEnd IfCells(target.Row, currentColumn + 1) = Sheets(sheetName).Cells(i - 1, 1)Exit ForEnd IfEnd IfEnd IfEnd IfNext i'求和Call sumScore(target)End Function'像仰卧起坐类型的成绩越高分越高的
'currentColumn:当前成绩列.
'StandardColumn:当前评分标准列
'a:评分标准起始行
'b:评分标准起始行
'target:当前的sheet
'sheetName:当前评分标准的表名
Public Function autoCalculationDSC(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) = "" ThenCells(target.Row, currentColumn + 1) = ""ElseIf Sheets(sheetName).Cells(i, StandardColumn) <> "" Then                               '判断是否为空'判断是否超出范围If Cells(target.Row, currentColumn) < Sheets(sheetName).Cells(b, StandardColumn) ThenCells(target.Row, currentColumn + 1) = 0Exit ForEnd IfIf Cells(target.Row, currentColumn) = Sheets(sheetName).Cells(i, StandardColumn) Then                '判断是否和评分标准相等Cells(target.Row, currentColumn + 1) = Sheets(sheetName).Cells(i, 1)Exit ForElseIf Cells(target.Row, currentColumn) > Sheets(sheetName).Cells(i, StandardColumn) ThenCells(target.Row, currentColumn + 1) = Sheets(sheetName).Cells(i, 1)Exit ForEnd IfEnd IfEnd IfEnd IfNext i'求和Call sumScore(target)End Function'求和函数
Public Function sumScore(target As Range)If Cells(target.Row, 5) = "" And Cells(target.Row, 7) = "" And Cells(target.Row, 9) = "" And Cells(target.Row, 11) = "" And Cells(target.Row, 13) = "" And Cells(target.Row, 15) = "" And Cells(target.Row, 17) = "" And Cells(target.Row, 19) = "" And Cells(target.Row, 21) = "" And Cells(target.Row, 23) = "" And Cells(target.Row, 25) = "" And Cells(target.Row, 27) = "" And Cells(target.Row, 29) = "" And Cells(target.Row, 31) = "" And Cells(target.Row, 33) = "" And Cells(target.Row, 35) = "" And Cells(target.Row, 37) = "" And Cells(target.Row, 39) = "" ThenCells(target.Row, 40) = ""ElseCells(target.Row, 40) = Application.WorksheetFunction.Sum(Cells(target.Row, 5), Cells(target.Row, 7), Cells(target.Row, 9), Cells(target.Row, 11), Cells(target.Row, 13), Cells(target.Row, 15), Cells(target.Row, 17), Cells(target.Row, 19), Cells(target.Row, 21), Cells(target.Row, 23), Cells(target.Row, 25), Cells(target.Row, 27), Cells(target.Row, 29), Cells(target.Row, 31), Cells(target.Row, 33), Cells(target.Row, 35), Cells(target.Row, 37), Cells(target.Row, 39))End If
End Function

在对应的sheet表下写vba程序:


Sub Worksheet_Change(ByVal target As Range)Dim sheetName As StringsheetName = "U17-18女素质评分标准"Select Case target.Column'5.8米x3折返跑(S)Case 4:Call autoCalculationASC(target, sheetName, 4, 2, 2, 82)'全场3/4场加速跑(S)Case 6:Call autoCalculationASC(target, sheetName, 6, 3, 2, 82)'15米x7折返跑(S)Case 8:Call autoCalculationASC(target, sheetName, 8, 4, 2, 82)'俯卧撑(次)Case 10:Call autoCalculationDSC(target, sheetName, 10, 5, 2, 82)'立定跳远(M)Case 12:Call autoCalculationDSC(target, sheetName, 12, 6, 2, 82)'1分钟仰卧起坐(次)Case 14:Call autoCalculationDSC(target, sheetName, 14, 7, 2, 82)'1分钟背起(次)Case 16:Call autoCalculationDSC(target, sheetName, 16, 8, 2, 82)'杠铃高翻Case 18:Call autoCalculationDSC(target, sheetName, 18, 9, 2, 82)'负重半蹲Case 20:Call autoCalculationDSC(target, sheetName, 20, 10, 2, 82)'原地摸高(M)Case 22:Call autoCalculationDSC(target, sheetName, 22, 11, 2, 82)'助跑单脚跳摸高(M)Case 24:Call autoCalculationDSC(target, sheetName, 24, 12, 2, 82)'单跳双停双手摸高(M)Case 26:Call autoCalculationDSC(target, sheetName, 26, 13, 2, 82)'双摇跳绳(次)Case 28:Call autoCalculationDSC(target, sheetName, 28, 14, 2, 82)'髋旋转(次)Case 30:Call autoCalculationDSC(target, sheetName, 30, 15, 2, 82)'肩回环(CM)Case 32:Call autoCalculationASC(target, sheetName, 32, 16, 2, 82)'体前屈(CM)Case 34:Call autoCalculationASC(target, sheetName, 34, 17, 2, 82)'限制区周边多向移动(S)Case 36:Call autoCalculationASC(target, sheetName, 36, 18, 2, 82)'跳起空中转体双手头上传球(M)Case 38:Call autoCalculationDSC(target, sheetName, 38, 19, 2, 82)End SelectEnd Sub

成绩输入表格如:

这样在前面的一列输入成绩,后面紧跟着的表格就得出了成绩。

excel自动计算体育成绩相关推荐

  1. 体育测试成绩用什么软件制表,如何用电子表格进行体育成绩的统计.docx

    如何用电子表格进行体育成绩的统计 (潍坊职业学院 , 山东 潍坊 261041)摘要 :体育统计是体育教育工作者经常要做的工作 ,而人工的统计复杂而繁琐 ,利用计算机电子表格进行的体育成绩的统计简单有 ...

  2. oracle体育成绩字段,在Excel中利用自定义函数处理体育达标成绩

    一.建立标准查分表 首先是根据<国家体育锻炼标准评分表>以16岁男子(高中一年级)为例,在Excel中建立标准评分表,把工作表命名为"评分表",建立该表的目的是为了编制 ...

  3. 双对数坐标系matlab绘图,EXCEL自动计算液塑限并绘制图表至双对数坐标系.doc

    EXCEL自动计算液塑限并绘制图表至双对数坐标系 精品论文 参考文献 EXCEL自动计算液塑限并绘制图表至双对数坐标系 湖南理工职业技术学院 湖南湘潭 411000 摘要:用解析法计算液塑限试验数据, ...

  4. 怎样计算机表格中算出平均值,怎样设置excel自动计算平均值

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 设置excel自动计算平均值的步骤如下: 1.打开WPS表格,点击一下需要计算的平均值的单元格进入编辑状态. 2.在单元格总输入& ...

  5. 测试高考体育成绩的软件,高考体育成绩查询

    高考体育成绩查询 19655r,我们的个性化口号:引领成长,成就未来. 高考体育成绩查询, 正所谓一分"天堂"一分"地狱",可见中考体育成绩起着至关重要的作用! ...

  6. 【C语言】案例二十九 综合案例——体育成绩管理系统

    案例描述 体侧所含项目与每项所占比例如下表所示: 单项指标 权重 体重指数(BMI) 15 肺活量 15 50米 20 坐位体前屈 10 立定跳远 10 引体向上(男)/仰卧起坐(女) 10 1000 ...

  7. 大学计算机课算绩点吗,大学体育成绩算入绩点吗?

    大学体育是一门必修课程,要算入绩点.如果大学体育挂科,会先安排一次补考,当然,体育不合格也就拿不到奖学金了. 学分绩点的计算: 将学生修过的每一门课程(包括重修的课程)的课程绩点乘以该门课程的学分,累 ...

  8. jsp学生体育成绩管理系统

    本学生体育成绩管理系统最终系统实现的主要功能包括系统管理员部分的修改登录密码.公告信息管理.项目信息管理和班级信息管理模块,老师部分的修改班级信息.查看系统公告.学生信息管理和成绩信息管理模块,学生用 ...

  9. 怎么利用计算机为学生成绩进行排名,使用excel为学生成绩排序的方法和步骤

    在下面表格中学号和姓名等是用计算机录入并打印出来,老师只是手写填上考试成绩和排名,然后让打字员录入表格中.当然我也看到或听说过其他学校的学生成绩统计分数排名表.它是对学生成绩进行升序或降序的排列表.这 ...

最新文章

  1. 华为服务器HBA卡在哪个位置,服务器hba 设置
  2. wmic 命令的一个汇总,功能很强大
  3. OpenGL+VS2015+WIN10 demo
  4. java类的定义的实例_Java类的定义与实例化
  5. Java线程详解(6)-线程的交互
  6. SAP创建Web Service以及用ABAP调用
  7. solr6 java_Solr6 快速入门教程
  8. js setTimeout 传递带参数的函数的2种方式
  9. 解决 supervisor中stop django进程不能真正的停止 问题
  10. Codeforces 990E Post Lamps 【暴力】【贪心】
  11. 信息学奥赛C++语言:百钱买百鸡
  12. 远程调用——hessian使用入门
  13. SQL server数据缓存依赖
  14. 【软件工程导论】期末复习试题集
  15. 苹果计算机 win10,苹果电脑怎么安装Win10系统?
  16. 华为认证哪个方向好学?
  17. 李铁被传下课之际,梅西却要七拿金球奖了?这波预测没毛病
  18. excel函数 不能正常显示数字
  19. ABP教程(四)- 开始一个简单的任务管理系统 - 实现UI端的增删改查
  20. 最棒的10款MySQL GUI工具

热门文章

  1. 淘淘摘苹果Python版
  2. 网站被篡改导致百度快照被劫持跳转到博彩页面的解决办法
  3. 亲测,idea切换分支异常:error: The following untracked working tree files would be overwritten by checkout
  4. 概念模型,逻辑模型,物理模型
  5. PIC反汇编 MPLAB HEX
  6. ESPIDF开发ESP32学习笔记【SPI与片外FLASH基础】
  7. 数学基础知识-排列与组合
  8. 【ubuntu】virtualbox安装增强功能时:未能加载虚拟光盘到虚拟电脑
  9. 昆明半程马拉松:1名选手死亡5名选手昏迷(图)
  10. OSG 加载 fbx模型 渲染 已解决