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(), чтобы найти значение в первом столбце и получить значение во втором.

Другие вопросы по тегам