Як використовувати заяву Select Case у VBA? (Приклади)

Заява про вибір справи в Excel VBA

Select Case є заміною запису декількох операторів if у VBA, коли у нас є багато умов у коді, нам може знадобитися використовувати декілька операторів If, що може бути нудним, оскільки стає більш складним, оскільки надається більшість операторів If Виберіть випадок, ми визначаємо критерії як різні випадки та результати відповідно до них.

SELECT CASE допомагає у процесі прийняття рішень. У цьому для оцінки різних можливих випадків використовується лише один вираз. Для виконання розробленого коду легко аналізується кілька умов. Цей випадок case використовується як замінник ELSE IF для оцінки виразів. Він класифікується як логічна функція, вбудована в Excel. Для використання цієї функції код вводиться через редактор Visual Basic, представлений на вкладці розробника.

Пояснення

Різні групи висловлювань використовуються у Вибірковій справі. Для ефективного використання цього слід дотримуватися наступного синтаксису. Це схоже на оператор switch, представлений іншими мовами програмування, такими як Java, C # та PHP.

 Виберіть [Case] ​​Вираз для тестування [Case] ​​Перелік висловлювань виразів (Case 1, Case 2, Case 3 і так далі ...) Case Else (Else Statements) End Select 

Пояснення термінів, пов’язаних із вибраною справою, подано наступним чином

Вираз для тестування: Потрібно оцінити різні типи даних, такі як ціле число, рядок, логічне значення, об'єкт та символ.

Список виразів:  Вирази створюються з урахуванням регістру, щоб знайти точну відповідність введеного вводу. Якщо більше двох виразів, вони відокремлюються за допомогою оператора коми. 'Is' - це ключове слово, що використовується для порівняння двох виразів за допомогою логічних операторів в Excel, таких як =,, =.

  • End Select: закриває визначення конструктора вибору
  • Заяви: Заяви розробляються з використанням регістру для запуску виразів, які обчислюються для аналізу, чи існує відповідне твердження
  • Інші твердження : Це тестування оператора else, коли вираз тестування не збігається з будь-якими операторами регістру.

Як використовувати заяву про вибір справи VBA?

Функція вибору, надана VBA, не працює на звичайних робочих аркушах. Нам потрібно використовувати параметр Visual Basic на вкладці Розробник. Визначені користувачем функції та кодування, створені в режимі розробника для запуску різних малих додатків у сфері бізнесу.

Він використовується в ситуаціях, коли в Excel є вкладені оператори if. Це найкращий варіант для вирішення різноманітних справ. Щоб ефективно використовувати цей варіант, слід виконати наступні завдання

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

Приклад №1 - Проста заява про вибір

Цей приклад полягає в розумінні простого випадку вибору, щоб знайти відповідне значення.

Код:

Private Sub Selcaseexmample () Dim A As Integer A = 20 Select Case A Case 10 MsgBox "First Case is match!" Справа 20 MsgBox "Другий випадок відповідає!" Справа 30 MsgBox "Третя справа відповідає вибраній справі!" Справа 40 MsgBox "Четвертий випадок відповідає вибраному випадку!" Case Else MsgBox "Жоден з випадків не відповідає!" End Виберіть End Sub

Результат:

Для порівняння тестового виразу з різними випадками використовується чотири твердження case та case else. У цьому прикладі другий випадок відповідає змінній A, яка відповідає 20.

Приклад №2 - Ключове слово "До" для перевірки оцінок

Цей приклад пояснює використання ключового слова 'Кому' з вибраним регістром.

Код:

Приватний Sub Selcasetoexample () Помутніти позначки студентів як цілі позначки студентів = InputBox ("Ввести позначки від 1 до 100?") Виберіть регістр студентських позначок Справа від 1 до 36 MsgBox "Не вдалося!" Корпус від 37 до 55 MsgBox "C клас" Корпус від 56 до 80 MsgBox "B клас" Корпус 81 до 100 MsgBox "A клас" Корпус інший MsgBox "Поза зоною дії" End Select End Sub

Результат:

Ключове слово "To" допомагає визначити набір тестових виразів у діапазоні. Корисно знайти оцінку, отриману студентом, порівнявши різні випадки. Після запуску програми ми повинні ввести значення, щоб отримати результат.

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

Приклад №3 - Використання ключового слова "Є" із виділеним регістром

Цей приклад демонструє використання ключового слова 'Is' у виділеному регістрі.

Код:

 Sub CheckNumber () Dim NumInput As Integer NumInput = InputBox ("Please enter a number") Select Case NumInput Case Is = 200 MsgBox "Ви ввели число більше або дорівнює 200" End Select End Sub 

Ключове слово "Is" допомагає знайти відповідні значення лише з регістром. Він порівнює тестовий вираз із заданим входом для отримання результату.

Вихід отримується, як показано на малюнку, якщо введене значення більше 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.