Excel成绩表中自动将等级转换为分数 您所在的位置:网站首页 详细说明excel中如何确定学生成绩排名的方法 Excel成绩表中自动将等级转换为分数

Excel成绩表中自动将等级转换为分数

2023-07-30 12:29| 来源: 网络整理| 查看: 265

在评分的时候,我们往往需要将A、B、C、......等级转换为对应的分数,下表是一个例子

做成绩册转换的时候我们要对比某学生的等级然后输入相应的分数,比如A等为90分,在分数栏中输入90。如果全部用手工转换很麻烦的,也可以用excel 的函数来解决,这里提供了一个用VBA实现自动转换分数的例子,扩展性很好。

首先我们建立两张表:成绩表(名称为Sheet1)和转换标准表(名称为standard),如下图所示

转换标准表中给出了等级对应的分数,根据情况可以设置为你想要的等级和分数

 

在工作簿底部的Sheet1上右键点击弹出对话框选择“查看代码”

打开VBA编辑器,在编辑器中的第一个下拉列表中选择Worksheet,在第二个下拉列表中选择BeforeDoubleClick(意思是双击会执行这段代码)

在程序Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)中输入下列代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) TotalNum = 20 '学生总数 StartNum = 2 '开始行号 GradeColumn = 5 '等级列 ScoreColumn = 6 '分数列,这列的分数将自动计算 StdGradeColumn = 1 'standard中的等级列 StdScoreColumn = 2 'standard中的等级对应的分数列 GradeNumber = 10 'standard中的等级个数,自己可以任意设置多个等级 For i = StartNum To TotalNum + StartNum - 1 Set std = Worksheets("Sheet1").Cells(i, GradeColumn) For j = 2 To GradeNumber + 1 SelectI = 1 Set Table = Worksheets("standard").Cells(j, StdGradeColumn) If StrComp(std.Value, Table.Value, 1) = 0 Then '比较文本 SelectI = j Exit For End If Next j Worksheets("Sheet1").Cells(i, ScoreColumn) = Worksheets("standard").Cells(SelectI, StdScoreColumn) Next i End Sub

其中

 TotalNum = 11 '学生总数  StartNum = 2 '开始行号  GradeColumn = 5 '等级列  ScoreColumn = 6 '分数列,这列的分数将自动计算  StdGradeColumn = 1 'standard中的等级列  StdScoreColumn = 2 'standard中的等级对应的分数列  GradeNumber = 10  'standard中的等级个数,自己可以任意设置多个等级

这些参数需要根据Sheet1和standard两个表单来设置

输入代码后如下图所示:

保存代码,然后在Sheet1表单中双击,则会自动计算出相应的分数,见下图

 

 

 

 

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有