Excel VBA Switch Case
В случае переключения VBA, когда нам нужно логически проверить или проанализировать условие и выполнить разные строки кодов на основе одного и того же, мы используем условный оператор IF-Else. Аналогичным образом, существует еще один оператор Switch Case, более широко известный как оператор Select Case, который может проверять или анализировать несколько логических условий и выполнять строки кода на их основе. Если у вас есть три или более логических условия для проверки, рекомендуется использовать Select Case или Switch Case вместо обычного оператора IF-Else. Потому что в таких случаях он делает код VBA более быстрым и понятным вместо вложенных операторов IF-Else.
Переключить кейс / Выбрать кейс
Switch Case или Select Case в VBA работают по тем же строкам, что и операторы IF-Else. Он проверяет несколько логических / условных выражений на разные значения (случаи). Как только любой случай соответствует условию (становится истинным для данного условия), система выполняет этот случай, а остальные другие случаи игнорируются для выполнения. В случае, если есть два случая, которые верны для данного условия, только первый будет выполнен с законом приоритета.
Синтаксис для Switch Switch / Select Case выглядит следующим образом:
Select Case
Case value_1
Code to Execute when Expression = value_1
Case value_2
Code to Execute when Expression = value_2
Case value_3
Code to Execute when Expression = value_3
.
.
.
Case value_n
Code to Execute when Expression = value_n
Case Else
Code to Execute when no case value meets the expression/logical test.
End Select
Где,
Выражение: это выражение, для которого мы хотели проверить или проанализировать, используя разные значения регистра.
значение_1, значение_2, значение_3, … - это логические условия, которые необходимо проверить для данного выражения.
Как использовать оператор Switch Case в Excel VBA?
Мы узнаем, как использовать оператор Switch Case в Excel с помощью кода VBA.
Вы можете скачать этот шаблон VBA Switch Case Excel здесь - Шаблон VBA Switch Case ExcelКорпус коммутатора VBA - пример № 1
Мы проверим, является ли данное число меньше 100 или больше 100. Для этого выполните следующие действия:
Шаг 1. Вставьте новый модуль в редактор Visual Basic (VBE). Нажмите на вкладку Вставка > выберите модуль.
Шаг 2: Определите новую подпроцедуру во вставленном модуле, которая может содержать ваш макрос.
Код:
Sub switch_case_example1 () End Sub
Шаг 3: Определите новую переменную с именем usrInpt, которая может содержать пользовательское значение. Используйте функцию VBA InputBox для создания поля ввода, которое принимает пользовательские значения через переменную usrInpt .
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox («Пожалуйста, введите ваше значение») End Sub
Шаг 4: Используйте оператор Select Case и укажите значение, предоставленное пользователем через переменную usrInpt . Это выражение, которое нам нужно проверить с помощью логических условий.
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox («Пожалуйста, введите ваше значение») Выберите Case usrInpt End Sub
Шаг 5: Введите первый логический тест, который будет проверен в заявлении Case, следующим образом
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox («Пожалуйста, введите ваше значение») Выберите регистр usrInpt Case Is <100 End Sub
Шаг 6: Используйте функцию MsgBox для добавления выходного сообщения, если Case Is <100 - true.
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox («Пожалуйста, введите ваше значение») Выберите регистр usrInpt Case Is <100 MsgBox "Предоставленное число меньше 100" End Sub
Шаг 7: Теперь нам нужно предоставить исполняемый оператор, когда значение для usrInpt больше 100. Добавьте Case и MsgBox для достижения этого.
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox («Пожалуйста, введите ваше значение») Выберите регистр usrInpt Case Is 100 MsgBox «Предоставленное число больше 100» End Sub
Шаг 8: Что если значение, предоставленное пользователем, равно 100? У нас нет никаких дел для этого. Давайте добавим тот, который дает пользователю сообщение, что введенное им значение равно 100.
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox («Пожалуйста, введите ваше значение»). Выберите регистр. UsrInpt Case равен 100 MsgBox
Шаг 9: Нам нужно завершить оператор Select Case. Используйте End Select, чтобы завершить созданный цикл.
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox («Пожалуйста, введите ваше значение»). Выберите регистр. UsrInpt Case равен 100 MsgBox Sub
Шаг 10: Теперь запустите этот код, нажав кнопку Run или F5. Появится новое всплывающее окно с просьбой проверить значение. Я введу значение как 110 и нажму кнопку OK в поле ввода. Поскольку число, которое я ввожу, больше 100, как только я нажимаю кнопку ОК, на моем экране появляется новое сообщение: «Предоставленное число больше 100».
Корпус коммутатора VBA - пример № 2
Предположим, мы хотим получить оценку учеников по их оценкам. Смотрите шаги ниже о том, как мы можем достичь этого.
Шаг 1: Определите новую подпроцедуру с именем switch_case_example2 .
Код:
Sub switch_case_example2 () End Sub
Шаг 2: Определите две новые переменные - помечает как целое число и оценивает как строку, используя оператор Dim в созданной подпроцедуре.
Код:
Sub switch_case_example2 () Dim помечается как Integer Dim оценивается как String End Sub
Шаг 3: Используйте функцию VBA InputBox, с помощью которой пользователь может ввести значение для меток переменной.
Код:
Sub switch_case_example2 () Dim отмечает как целое число Dim оценивает как строковое значение = InputBox («Пожалуйста, введите отметки») End Sub
Шаг 4: Используйте оператор Select Case и укажите метки переменных в качестве выражения для проверки.
Код:
Sub switch_case_example2 () Dim отмечается как целое число. Dim оценивается как строковое значение. = InputBox («Пожалуйста, введите отметки»).
Поскольку мы хотим назначать оценки учащимся на основе введенных ими оценок, нам нужно сначала определить оценки.
Шаг 5: Используйте инструкцию case, чтобы проверить, не меньше ли отметок 35. Если это так, присвойте значение «F» переменным оценкам.
Код:
Sub switch_case_example2 () Dim отмечается как целое число Dim оценивается как строковое обозначение = InputBox («Пожалуйста, введите отметки») Выбрать Case marks Case Is <35 grades = "F" End Sub
Шаг 6: Если оценки от 35 до 45, присвойте значение «D» переменным оценкам.
Код:
Sub switch_case_example2 () Dim отмечает как целое число Dim оценивает как String отмечает = InputBox ((«Пожалуйста, введите отметки»)) Выберите регистр Case Case <35 оценок = «F» Case от 35 до 45 оценок = «D» End Sub
Шаг 7: Если введенные оценки находятся в диапазоне от 46 до 55, значение «C» должно быть присвоено переменным оценкам.
Код:
Sub switch_case_example2 () Dim отмечает как целое число Dim оценивает как String отмечает = InputBox ((«Пожалуйста, введите отметки»)) Выберите Case case Case <35 оценок = «F» Case от 35 до 45 оценок = «D» Case от 46 до 55 оценки = "C" End Sub
Шаг 8: Когда отметки находятся в диапазоне от 56 до 65, значение, присвоенное переменным оценкам, должно быть «B».
Код:
Sub switch_case_example2 () Dim отмечает как целое число Dim оценивает как String отмечает = InputBox ((«Пожалуйста, введите отметки»)) Выберите Case case Case <35 оценок = «F» Case от 35 до 45 оценок = «D» Case от 46 до 55 оценки = "C" Case 56 До 65 классов = "B" End Sub
Шаг 9: Для оценок от 66 до 75 балл должен быть «А».
Код:
Sub switch_case_example2 () Dim отмечает как целое число Dim оценивает как String отмечает = InputBox ((«Пожалуйста, введите отметки»)) Выберите Case case Case <35 оценок = «F» Case от 35 до 45 оценок = «D» Case от 46 до 55 оценки = "C" Дело 56 до 65 баллов = "B" Дело 66 до 75 баллов = "A" End Sub
Шаг 10: Если введенные оценки превышают 75, переменной оценки следует присвоить значение как «A +»
Код:
Sub switch_case_example2 () Dim отмечается как целое число Dim оценивается как строковое обозначение = InputBox («Пожалуйста, введите отметки») Выберите Case marks Case Is 75 grades = «A +» End Sub
Шаг 11: Использование End Выберите закрытие цикла Select Case.
Код:
Sub switch_case_example2 () Dim отмечается как целое число Dim оценивается как строковое обозначение = InputBox («Пожалуйста, введите отметки») Выбрать Case marks Case Is 75 grades = «A +» End Select End End Sub
Шаг 12: Теперь нам нужно проверить, какая оценка связана с оценками, которые набрал студент. Чтобы добиться этого, используйте функцию MsgBox таким образом, чтобы она обозначала достигнутые оценки в окне сообщения.
Код:
Sub switch_case_example2 () Dim отмечает как целое число Dim оценивает как String отмечает = InputBox («Пожалуйста, введите отметки») Выберите Case case Case Is 75 grades = "A +" End Select MsgBox "Достигнутая оценка:" & grades End Sub
Шаг 13: Запустите этот код, нажав F5 или кнопку Run, и вы увидите окно ввода VBA, запрашивающее значение метки. Я введу отметки как 72 и нажму кнопку OK, присутствующую в поле ввода. Как только я нажму кнопку OK внутри поля ввода, я получу окно сообщения с указанием оценок, связанных с введенными отметками.
Вот как мы можем использовать оператор Switch / Select Case внутри VBA.
То, что нужно запомнить
- Переключатель case является синонимом оператора Select Case в VBA. Он был назван так, потому что с помощью этого утверждения мы можем переключаться между различными выходами одновременно.
- Этот оператор может использоваться в качестве альтернативы циклу IF-Else всякий раз, когда у нас есть три или более условия для проверки.
- Это нормально, если вы не используете ELSE Case в операторе Select Case. Однако в этом случае вам нужно убедиться, что хотя бы одно условие выполняется во всем цикле.
Рекомендуемые статьи
Это руководство по VBA Switch Case. Здесь мы обсуждаем, как использовать инструкцию Switch Case в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -
- Коллекция VBA (Примеры)
- VBA IF Заявления | Шаблоны Excel
- Как использовать функцию сортировки Excel VBA?
- VBA While Loop (Примеры с шаблоном Excel)
- VBA Environ