VBA и Cases, присвоение значения на основе значения в диапазоне
У меня есть оценки для студентов и уровней квалификации.
например, для 5-го класса существует четыре уровня мастерства. Четыре уровня мастерства соответствуют буквам алфавита, поэтому, если 5-й класс получил буквенное присвоение B, то его уровень мастерства будет "Below Proficient", поскольку для любой буквы от A до R получится уровень "Below Proficient". "Мне было интересно, как это сделать с делами,
Моя грубая идея кода была следующей:
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
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
Вы можете создать свой словарь на другом листе, а затем использовать функцию VLOOKUP(), чтобы найти значение в первом столбце и получить значение во втором.