我的学生成绩和熟练程度。
例如,对于五年级,有四个级别的熟练程度。四个级别的熟练程度对应于字母表中的字母,因此如果五年级学生得到B的字母分配,那么他的熟练程度将是“低于精通”,因为对于A到R中的任何字母将达到“低于精通”的水平“我想知道如何处理案件,我对代码的粗略概念如下:
Function ConvertScores(Grade, Letter_Score)
Select Case ConvertScore(5, like "[A-R]")
Case ConvertScore(5, like"
ConvertScores = "F & P Remedial"
Case 2
ConvertScores = "F & P Below Proficient"
Case 3
ConvertScores = "F & P Proficient"
Case 4
ConvertScores = "F & P Advanced"
End Function
所以,是的,我希望VBA有一个列表对象,VBA中的列表对象是什么?
编辑:我能用多个If语句做到这一点,但在我看来,案例本来是一个更好的方法。这是我想用于案例而不是多个if-thens
的代码Function ConvertScoresMOY(Grade, Letter_Score) As String
If Grade = "5" And Letter_Score Like "[A-R]" Then
ConvertScoresMOY = "F & P Remedial"
ElseIf Grade = "5" And Letter_Score Like "[S-T]" Then
ConvertScoresMOY = "F & P Below Proficient"
ElseIf Grade = "5" And Letter_Score Like "[U-V]" Then
ConvertScoresMOY = "F & P Proficient"
ElseIf Grade = "5" And Letter_Score Like "[W-Z]" Then
ConvertScoresMOY = "F & P Advanced"
Else:
End If
End Function
答案 0 :(得分:2)
让我们从一个简单条件中插入所有条件开始:
If Grade = "5" Then
End If
然后你可以使用SWITCH CASE:
Select Case Letter_Score
Case Letter_Score Like "[A-R]"
ConvertScoresMOY = "F & P Remedial"
Case val Letter_Score Like "[S-T]"
ConvertScoresMOY = "F & P Below Proficient"
End Select
答案 1 :(得分:1)
您可以在另一个工作表中创建字典,然后使用VLOOKUP()函数在第一列上搜索值,并在第二列上获取值。