Как использовать оператор Select Case в VBA? (Примеры)

Заявление о выборе регистра в Excel VBA

Select Case - это замена записи нескольких операторов if в VBA, когда у нас много условий в коде, нам, возможно, придется использовать несколько операторов If, что может быть утомительным, поскольку становится более сложным, когда предоставляется больше операторов If в В заявлении select case мы определяем критерии как разные случаи и результаты в соответствии с ними.

SELECT CASE помогает в процессе принятия решений. В этом случае для оценки различных возможных случаев используется только одно выражение. Множественные условия легко анализируются для выполнения разработанного кода. Этот оператор case используется как оператор замены для ELSE IF для оценки выражений. Он классифицируется как логическая функция, встроенная в Excel. Чтобы использовать эту функцию, код вводится через редактор Visual Basic, представленный на вкладке разработчика.

Объяснение

В Select Case используются различные группы операторов. Для эффективного использования необходимо соблюдать следующий синтаксис. Он похож на оператор switch, представленный в других языках программирования, таких как Java, C # и PHP.

 Выберите [Случай] Выражение для проверки [Случай] Список выражений (Случай 1, Случай 2, Случай 3 и так далее ...) Случай Иначе (Остальные утверждения) Конец Выбрать 

Объяснение терминов, связанных с выбранным случаем, приводится ниже.

Выражение для тестирования: требуется для оценки различных типов данных, таких как целые, строковые, логические, объектные и символьные.

Список выражений:  выражения создаются с учетом регистра, чтобы найти точное соответствие введенному вводу. Если выражений больше двух, они разделяются с помощью оператора запятой. «Is» - это ключевое слово, используемое для сравнения двух выражений с использованием логических операторов в Excel, таких как =,, =.

  • End Select: закрывает определение case выбора конструктора
  • Операторы: операторы разрабатываются с использованием case для запуска выражений, которые оцениваются для анализа, есть ли какой-либо соответствующий оператор
  • Операторы Else: это проверка оператора else, когда тестовое выражение не соответствует ни одному из операторов case.

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

Функция выбора регистра, предоставляемая VBA, не работает в обычных рабочих листах. Нам нужно использовать опцию Visual Basic на вкладке «Разработчик». Пользовательские функции и код, созданные в режиме разработчика, для запуска различных небольших приложений в сфере бизнеса.

Он используется в ситуациях, когда в excel есть вложенные операторы if. Это лучший вариант для работы с множеством case-операторов. Чтобы использовать эту опцию эффективно, необходимо выполнить следующие задачи:

  • Прежде всего, необходимо создать макрос, разместив элемент управления командной кнопкой на листе Excel.
  • После этого щелкните правой кнопкой мыши кнопку команды и выберите опцию просмотра кода.
  • Поместите код между функцией командной кнопки и концом подпрограммы.
  • Выполните отладку кода, чтобы выявить синтаксические ошибки.
  • Скомпилируйте код, чтобы найти ошибки компиляции, чтобы успешно выполнить программу
  • Измените входные значения, чтобы увидеть разные результаты в зависимости от критериев соответствия
Вы можете скачать этот шаблон VBA Select Case Excel здесь - VBA Select Case Excel Template

Пример # 1 - Простая инструкция Select Case

Этот пример предназначен для понимания простого случая выбора для поиска совпадающего значения.

Код:

Private Sub Selcaseexmample () Dim A As Integer A = 20 Select Case A Case 10 MsgBox "Первый случай найден!" Случай 20 MsgBox "Второй случай найден!" Случай 30 MsgBox «Третий регистр соответствует выбранному регистру!» Случай 40 MsgBox «Четвертый регистр соответствует выбранному регистру!» Case Else MsgBox "Ни один из случаев не соответствует!" Конец Выбрать Конец подписки

Результат:

Четыре оператора case и case else используются для сравнения тестового выражения с разными вариантами. В данном примере второй случай соответствует переменной A, равной 20.

Пример № 2 - Ключевое слово «Кому» для проверки оценок

В этом примере объясняется использование ключевого слова «Кому» с регистром select.

Код:

Private Sub Selcasetoexample () Затенять студенческие отметки как целое число studentmarks = InputBox («Введите оценки от 1 до 100?») Выбрать регистр студенческих отметок От 1 до 36 MsgBox «Fail!» Ситуация от 37 до 55 MsgBox «C Grade» Case 56 до 80 MsgBox «B Grade» Case 81 до 100 MsgBox «A Grade» Case Else MsgBox «Out of range» End Select End Sub

Результат:

Ключевое слово 'To' полезно при определении набора тестовых выражений в диапазоне. Это помогает найти оценку, полученную учеником, путем сравнения различных случаев. После запуска программы мы должны ввести значение, чтобы получить результат.

Результат отображается с окном сообщения, как показано на скриншоте выше.

Пример №3 - Использование ключевого слова Is в Select Case

В этом примере демонстрируется использование ключевого слова Is с регистром select.

Код:

 Sub CheckNumber () Dim NumInput As Integer NumInput = InputBox ("Пожалуйста, введите число") Выберите Case NumInput Case Is = 200 MsgBox "Вы ввели число больше или равное 200" End Select End Sub 

Ключевое слово Is помогает найти совпадающие значения только с помощью операторов case. Он сравнивает тестовое выражение с заданным вводом для получения вывода.

Результат будет таким, как показано на рисунке, если введенное значение больше 200.

Пример # 4 - С командной кнопкой для изменения значений

Случай выбора также используется с кнопкой Command, создавая макрос.

Код:

 Sub color() Dim color As String color = Range("A1").Value Select Case color Case "Red", "Green", "Yellow" Range("B1").Value = 1 Case "White", "Black", "Brown" Range("B1").Value = 2 Case "Blue", "Sky Blue" Range("B1").Value = 3 Case Else Range("B1").Value = 4 End Select End Sub 

As shown in the program, the input is taken from the cells of the worksheet. The program is executed after clicking on the command button used from ActiveX controls. In this, a comma separator is used to combine the test expressions.

When the value in the Cell A1 changed, it results in a change in the B1 cell also by running the excel macro through the command button. You can refer to the screenshot given below:-

Example #5 – Check a Number Odd or Even

This example to help to check a number is even or odd.

Code:

 Sub CheckOddEven() CheckValue = InputBox("Enter the Number") Select Case (CheckValue Mod 2) = 0 Case True MsgBox "The number is even" Case False MsgBox "The number is odd" End Select End Sub 

The coding is developed as shown in the screenshot and output is displayed as follows when even number is entered.

Example #6 – Nested Select Case Statements

Nesting is a useful feature of the select case and the way how it is done is shown.

Code:

 Sub TestWeekday() Select Case Weekday(Now) Case 1, 7 Select Case Weekday(Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Sub 

Here the select case is defined inside another select case to test a day, weekday, or weekend. Except case 1 and 7 remaining all are weekdays (Note: case 1 is Sunday and case 7 is Saturday)

Things to Remember

  • The ‘Is’ keyword using in the statement of [case] and [case else] are not equal.
  • ActiveX control should be used in executing program through a command button taking input and displaying output in the excel sheet range of cells.
  • It is hard to run the programs in VBA if macros are disabled and always enable Macros to get best results.
  • VBA is a case sensitive and input should be entered accurately to get better results.