300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Excel成绩表中自动将等级转换为分数

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

时间:2018-11-26 17:31:04

相关推荐

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

在评分的时候,我们往往需要将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 - 1Set std = Worksheets("Sheet1").Cells(i, GradeColumn)For j = 2 To GradeNumber + 1SelectI = 1Set Table = Worksheets("standard").Cells(j, StdGradeColumn)If StrComp(std.Value, Table.Value, 1) = 0 Then '比较文本SelectI = jExit ForEnd IfNext jWorksheets("Sheet1").Cells(i, ScoreColumn) = Worksheets("standard").Cells(SelectI, StdScoreColumn)Next iEnd Sub

其中

TotalNum = 11 '学生总数

StartNum = 2 '开始行号

GradeColumn = 5 '等级列

ScoreColumn = 6 '分数列,这列的分数将自动计算

StdGradeColumn = 1 'standard中的等级列

StdScoreColumn = 2 'standard中的等级对应的分数列

GradeNumber = 10 'standard中的等级个数,自己可以任意设置多个等级

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

输入代码后如下图所示:

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。