Корпус комутатора Excel VBA
У випадку VBA Switch Case, коли нам потрібно логічно перевірити або проаналізувати стан та виконати різні рядки кодів на основі одного і того ж, ми використовуємо умовне твердження IF-Else. Аналогічно, є ще один оператор Switch Case, який широко відомий як оператор Select Case, який може перевірити або проаналізувати кілька логічних умов та виконати рядки коду на основі цих. Якщо у вас є три або більше логічних умов для перевірки, рекомендується використовувати Select Case або Switch Case замість звичайного оператора IF-Else. Тому що це робить код VBA швидшим і зрозумілішим замість вкладених операцій IF-Else в таких випадках.
Switch Case / Select Case
Switch Case або Select Case в VBA працює за аналогічними рядками, як і у IF-Else. Він перевіряє численні логічні / умовні вирази на різні значення (випадки). Як тільки будь-який із випадків відповідає умові (стає дійсним для даної умови), система виконує цей випадок, а інші інші ігноруються для виконання. У випадку, якщо для даної умови є два випадки, правда буде виконана лише перша з законом пріоритету.
Синтаксис для перемикача випадку / Виберіть регістр наведено нижче:
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
Де,
Вираз: це вираз, для якого ми хотіли перевірити або проаналізувати, використовуючи різні значення величини.
value_1, value_2, value_3, … - це логічні умови, які необхідно перевірити для даного виразу.
Як використовувати заяву справи комутатора в Excel VBA?
Ми дізнаємось, як використовувати оператор Switch Case в Excel за допомогою коду VBA.
Ви можете завантажити цей шаблон VBA Switch Switch Excel тут - шаблон VBA Switch Switch ExcelКорпус комутатора VBA - приклад №1
Ми перевіримо, чи вказане число менше 100 або більше 100. Для цього виконайте кроки нижче:
Крок 1: Вставте новий модуль у візуальний базовий редактор (VBE). Перейдіть на вкладку Вставка > виберіть Модуль.
Крок 2: Визначте новий підпроцедур у вставленому модулі, який може містити ваш макрос.
Код:
Sub switch_case_example1 () Кінець Sub
Крок 3: Визначте нову змінну з назвою usrInpt, яка може містити значення користувача. Скористайтеся функцією VBA InputBox для створення вікна введення, який приймає значення користувача через змінну usrInpt .
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Будь ласка, введіть своє значення") Кінець 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 ("Будь ласка, введіть своє значення") Виберіть Case usrInpt Case <100 End Sub
Крок 6: Використовуйте функцію MsgBox, щоб додати вихідне повідомлення, якщо значення Case <100 є істинним.
Код:
Sub Switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Будь ласка, введіть своє значення") Виберіть Case case usrInpt Case <100 MsgBox "Забезпечене число менше 100" End Sub
Крок 7: Тепер нам потрібно надати виконуваний оператор, коли значення для usrInpt перевищує 100. Додайте Case і MsgBox для досягнення цього.
Код:
Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Будь ласка, введіть своє значення") Виберіть "Case case usrInpt" - 100 MsgBox "Забезпечене число більше 100" End Sub
Крок 8: Що робити, якщо значення, надане користувачем, саме 100? У нас немає жодного випадку для цього. Додамо ту, яка дає користувачеві повідомлення про те, що значення, яке він ввів, - 100.
Код:
Sub Switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Будь ласка, введіть своє значення") Виберіть Case usrInpt Case 100 MsgBox "Наведене число перевищує 100" Case Is = 100 MsgBox "Забезпечене число 100" End Sub
Крок 9: нам потрібно закінчити оператор Select Case. Використовуйте End Select, щоб закінчити створений цикл.
Код:
Sub Switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Будь ласка, введіть своє значення") Виберіть Case usrInpt Case 100 MsgBox "Наведене число перевищує 100" Case Is = 100 MsgBox "Наведене число 100" End Select End Під
Крок 10: Тепер запустіть цей код, натиснувши кнопку Запустити або F5. З'явиться нове спливаюче вікно з проханням перевірити значення. Я введіть значення як 110 і натисніть кнопку ОК на полі введення. Оскільки число, яке я ввожу, перевищує 100, як тільки я натискаю кнопку ОК, на моєму екрані з’явиться нове повідомлення із записом: «Наведене число перевищує 100».
Корпус комутатора VBA - приклад №2
Припустимо, ми хочемо зафіксувати оцінку учнів на основі їх оцінок. Дивіться кроки нижче про те, як ми можемо цього досягти.
Крок 1: Визначте нову підпроцедуру з назвою switch_case_example2 .
Код:
Sub switch_case_example2 () Кінець Sub
Крок 2: Визначте дві нові змінні - позначки як цілі числа, а класи - як рядок, використовуючи оператор Dim у створеній під-процедурі.
Код:
Sub switch_case_example2 () Dim позначає як цілісні розміри Dim як String End Sub
Крок 3: Використовуйте функцію VBA InputBox, за допомогою якої користувач може вводити значення для мінливих знаків .
Код:
Sub Switch_case_example2 () Dim позначки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Кінець Sub
Крок 4: Використовуйте оператор Select Case і введіть знаки змінної як вираз, який потрібно перевірити.
Код:
Sub switch_case_example2 () Dim позначки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть знаки регістру Кінець Sub
Оскільки ми хочемо присвоїти оцінки учням на основі оцінок, які вони вводять, нам потрібно визначити оцінки спочатку.
Крок 5: Використовуйте випадок з регістром, щоб перевірити, чи знаки менше 35. Якщо це так, призначіть значення змінним класам «F».
Код:
Sub Switch_case_example2 () Dim знаки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть знаки регістру. Справа <35 класів = "F" Кінець Sub
Крок 6: Якщо позначки знаходяться від 35 до 45, призначте значення "D" змінним класам.
Код:
Sub switch_case_example2 () Dim знаки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть відмітки "Case" <35 класів = "F" Випадок 35 - 45 класів = "D" Кінець Під
Крок 7: Якщо введені позначки знаходяться від 46 до 55, значення "C" слід присвоїти змінним класам.
Код:
Sub switch_case_example2 () Dim знаки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть Знаки регістру Справа <35 класів = "F" Випадок від 35 до 45 класів = "D" Випадок 46 - 55 класи = Закінчення Sub
Крок 8: Коли позначки знаходяться в діапазоні 56-65, значення, присвоєне змінним класам, має бути "B".
Код:
Sub switch_case_example2 () Dim знаки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть Знаки регістру Справа <35 класів = "F" Випадок від 35 до 45 класів = "D" Випадок 46 - 55 класи = "C" Випадок 56 До 65 класів = "B" Кінець Під
Крок 9: Для балів від 66 до 75 оцінка повинна бути "А".
Код:
Sub switch_case_example2 () Dim знаки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть Знаки регістру Справа <35 класів = "F" Випадок від 35 до 45 класів = "D" Випадок 46 - 55 класи = "С" Випадок 56 До 65 класів = "Б" Випадок 66 До 75 класів = "А" Кінець Під
Крок 10: Якщо введених знаків більше 75, змінній оцінок слід призначити значення "A +"
Код:
Sub switch_case_example2 () Dim позначки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть Знаки регістру Справа 75 балів = "A +" Кінець Підряд
Крок 11: Використовувати кінець Виберіть закриття циклу Select Case.
Код:
Sub switch_case_example2 () Dim знаки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть Знаки регістру Справа 75 балів = "A +" Кінець Виберіть Кінець Під
Крок 12: Тепер нам потрібно перевірити, яка оцінка є пов’язаною з оцінками, які студент вніс. Щоб досягти цього, використовуйте функцію MsgBox таким чином, щоб вона позначала досягнуті класи у вікні повідомлення.
Код:
Sub switch_case_example2 () Dim знаки як цілісні розміри Dim як String marks = InputBox ("Будь ласка, введіть позначки") Виберіть відмітки справи. Справа становить 75 балів = "A +" Кінець Виберіть MsgBox "Досягнута оцінка:" & оцінки End Sub
Крок 13: Запустіть цей код, натиснувши кнопку F5 або Run, і ви побачите поле введення VBA із запитом значення позначки. Я вписую позначки як 72 і натискаю кнопку ОК, наявну у вікні введення. Як тільки я натискаю кнопку ОК всередині поля введення, я отримаю вікно з повідомленням про марки, пов'язані з введеними позначками.
Ось так ми можемо використовувати оператор Switch / Select Case всередині VBA.
Що потрібно пам’ятати
- Перемикач регістру насправді є синонімом для оператора Select Case в VBA. Це було названо так, тому що за допомогою цього твердження ми можемо перемикатися між різними результатами одночасно.
- Це твердження можна використовувати як альтернативу циклу IF-Else, коли у нас є три або більше умов для перевірки.
- Гаразд, якщо ви не використовуєте випадок ELSE у виписці Вибір випадку. Однак у цьому випадку вам потрібно переконатися, що принаймні одна умова відповідає всій циклі.
Рекомендовані статті
Це посібник із корпусу VBA Switch. Тут ми обговорюємо, як використовувати заяву Case Switch в Excel VBA разом з практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -
- Колекція VBA (приклади)
- Виписки VBA IF | Шаблони Excel
- Як використовувати функцію сортування Excel VBA?
- VBA while цикл (приклади з шаблоном Excel)
- VBA Environment