Как написать оператор case в vba (с примером)
Оператор Case — это тип оператора, который циклически перебирает условия и возвращает значение при выполнении первого условия.
Для написания оператора case в VBA можно использовать следующий базовый синтаксис:
SubCaseStatement () Dim i As Integer For i = 2 To 9 Select Case Range(" B " & i).Value Case Is >= 30 result=" Great " Box Is >= 20 result = " Good " Case Is >= 15 result=" OK " Case Else result=" Bad " End Select Range(" C " & i).Value = result Next i End Sub
Этот конкретный пример просматривает каждую ячейку в диапазоне B2:B9 и возвращает следующие значения в диапазоне C2:C9 :
- « Отлично », если значение в столбце B больше или равно 30.
- В противном случае — « Хорошо », если значение в столбце B больше или равно 20.
- В противном случае « ОК », если значение в столбце B больше или равно 15.
- В противном случае — « Плохо », если ни одно из предыдущих условий не выполнено.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: написание оператора Case в VBA
Допустим, у нас есть следующий набор данных в Excel, который показывает количество очков, набранных разными баскетболистами:
Предположим, мы хотим написать оператор случая, чтобы присвоить каждому игроку значение «Отлично», «Хорошо», «Хорошо» или «Плохо» в зависимости от количества набранных очков.
Для этого мы можем создать следующий макрос:
SubCaseStatement () Dim i As Integer For i = 2 To 9 Select Case Range(" B " & i).Value Case Is >= 30 result=" Great " Box Is >= 20 result = " Good " Case Is >= 15 result=" OK " Case Else result=" Bad " End Select Range(" C " & i).Value = result Next i End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Столбец C возвращает значение «Отлично», «Хорошо», «Хорошо» или «Плохо» на основе соответствующего значения в столбце B.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как классифицировать список значений
VBA: Как подсчитать уникальные значения в диапазоне
VBA: как подсчитать количество строк в диапазоне