VBA Switch Case - Как использовать оператор Switch Case в Excel VBA?

Содержание:

Anonim

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. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Коллекция VBA (Примеры)
  2. VBA IF Заявления | Шаблоны Excel
  3. Как использовать функцию сортировки Excel VBA?
  4. VBA While Loop (Примеры с шаблоном Excel)
  5. VBA Environ