Заява комутатора Excel VBA
Перемикач у VBA подібний до функції вибору корпусу. Єдина відмінність між ними полягає в тому, що нам потрібно писати набагато менші коди в комутаторі порівняно з обраним регістром. Ми можемо записати оператор перемикання всередині підпроцедуру або записати його як визначену користувачем функцію в VBA.
Перемикач у VBA оцінює вираз та дає результат на основі умов для цього виразу. У операторах вибору випадку ми визначили випадки, що якщо у нас є випадок, результатом має бути b тощо. Для цього потрібно писати багато кодів для оператора select case, але в Switch ми можемо об'єднати всі умови і вирази в одному операторі, а не мати кілька заяв обліку.
Синтаксис заяви про переключення
Switch обчислює перший вираз, і якщо значення є істинним, воно повертає значення для виразу, і якщо значення для виразу 1 не відповідає дійсності, воно продовжується для того ж обчислення для виразу 2, і якщо результат є істинним, тоді відображається значення 2, але якщо вираз повертається помилковим, перемикання переходить до іншого виразу.
Отже, що станеться, якщо жоден з виразів не відповідає дійсності, і всі вони повертаються як помилкові, ми отримуємо помилку часу виконання в такому випадку, якщо у нас не буде попередньої помилки для такого сценарію.
Як використовувати заяву комутатора в Excel VBA?
Нижче наведено різні приклади використання заяви VBA Switch в Excel.
Ви можете завантажити цей шаблон Excel Switch VBA Switch тут - шаблон VBA Switch Switch ExcelПеремикач VBA - приклад №1
Почнемо з основного прикладу, щоб отримати уявлення про оператор VBA switch. Ми будемо брати дані від користувача і на основі цього введення визначимо вихід. Ми будемо приймати дані від числа 1 до 5, і виходячи з даних, ми матимемо заздалегідь визначені результати, але якщо користувач введе будь-яке число, крім нашого діапазону, нам доведеться виправити цю помилку.
Виконайте наведені нижче дії для використання заяви про перемикання в Excel VBA:
Крок 1: З візуальної основної вкладки введіть редактор VB з вкладки розробника.
Крок 2: У вікні редактора VB вставити новий модуль на вкладці Вставка.
Крок 3: Оголосіть новий підпроцедур у новому створеному модулі.
Код:
Sub Sample () Кінець Sub
Крок 4: Оголосіть дві змінні A і B, одну як ціле число, а іншу як рядок.
Код:
Sub Sample () Dim A As Integer Dim B As String End Sub
Крок 5: У змінній A збереження значення задається користувачем за допомогою функції поля введення.
Код:
Sub Sample () Dim A As Integer Dim B As String A = InputBox ("Введіть значення", "value має бути від 1 до 5") Кінець Sub
Крок 6: Тепер у змінній B ми будемо використовувати оператор перемикача VBA, щоб оцінити результат за кожним входом, наданим користувачем.
Код:
Підвибірка () Dim A як цілий розмір Dim B як рядок A = InputBox ("Введіть значення", "значення повинно бути від 1 до 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Three ", A = 4, " Four ", A = 5, " Five ") Закінчення Sub
Крок 5: Відображення значення, збереженого в B, за допомогою функції MSGBOX.
Код:
Підвибірка () Dim A як цілий розмір Dim B як рядок A = InputBox ("Введіть значення", "значення повинно бути від 1 до 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Три ", A = 4, " Чотири ", A = 5, " П'ять ") MsgBox B End Sub
Крок 6: Запустіть наведений вище код, натиснувши клавішу F5, і він попросить нас ввести ціле число. Введіть число 3 і натисніть кнопку ОК, щоб побачити результат.
Крок 7: Тепер давайте повторно запустимо код і введемо число 6 і подивимось отриманий результат.
Ми отримуємо помилку часу запуску, оскільки в нашому операторі комутатора немає вираження для визначення 6. Отже, в таких сценаріях нам потрібно мати деяку перевагу обробки помилок.
Крок 8: Щоб подолати цю помилку часу виконання, оголосити іншу змінну Var як варіант.
Код:
Підвибірка () Dim A як цілий Dim B як String Dim var як варіант A = InputBox ("Введіть значення", "значення повинно бути від 1 до 5") B = Перемикач (A = 1, "Один", A = 2, "Дві", А = 3, "Три", А = 4, "Четверо", А = 5, "П'ять") MsgBox B Кінець підряд
Крок 9: Перед нашим оператором перемикання використовуйте оператор goto on on error, щоб, якщо код знайшов помилку, він знав, куди піти.
Код:
Підвибірка () Dim A як цілий Dim B як String Dim var як варіант A = InputBox ("Введіть значення", "значення повинно бути від 1 до 5") Помилка GoTo var B = Switch (A = 1, "One ", A = 2, " Two ", A = 3, " Three ", A = 4, " Four ", A = 5, " Five ") MsgBox B End Sub
Крок 10: Тепер визначте, що буде, якщо в коді виникне помилка,
Код:
Підвибірка () Dim A як цілий Dim B як String Dim var як варіант A = InputBox ("Введіть значення", "значення повинно бути від 1 до 5") Помилка GoTo var B = Switch (A = 1, "One ", A = 2, " Два ", A = 3, " Три ", A = 4, " Чотири ", A = 5, " П'ять ") MsgBox B var: MsgBox" Ви ввели недійсне число "Відновити наступний кінець Sub
Крок 11: Тепер знову запустимо код натисканням клавіші F5 або натисканням кнопки «Відтворити» та вхідним значенням 6, а потім натисніть кнопку ОК, щоб побачити кінцевий результат у випадку, якщо заява перемикача зіткнеться з помилкою.
Перемикач VBA - приклад №2
Для цього прикладу я маю дані на аркуші 1, який містить назву деяких фільмів та їх тривалість у хвилинах. Виходячи з їх довжини, я хочу визначити фільм короткий чи довгий. Погляньте на дані нижче.
Виконайте наведені нижче дії для використання заяви про перемикання в Excel VBA:
Крок 1: Почнемо з того ж модуля і почнемо з визначення іншого підпроцедури наступним чином.
Sub Sample1 () Кінець Sub
Крок 2: Оголосіть дві змінні A і B, одну як цілу, іншу як String,
Sub Sample1 () Dim A As Integer Dim B As String End Sub
Крок 3: Тепер у змінній A збережемо значення довжини фільму для будь-якого з фільмів.
Sub Sample1 () Dim A As Integer Dim B As String A = Діапазон ("A3"). Зсув (0, 1) .Value End Sub
Крок 4: Тепер у змінній B використовуємо оператор перемикача VBA, щоб визначити, яким буде сценарій для кожної тривалості фільму.
Sub Sample1 () Dim A As Integer Dim B As String A = Діапазон ("A3"). Зсув (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Довгий ", A <= 150, " Занадто довгий ") Кінець Підд
Крок 5: Тепер що робити, якщо значення більше 180, якщо у нас є інший обробник помилок або ми можемо просто записати інший вираз у вигляді True, Value. Оскільки всі інші значення будуть повернуті, так як помилковий код буде виконувати цей вираз.
Sub Sample1 () Dim A As Integer Dim B As String A = Діапазон ("A3"). Зсув (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Довгий ", A <= 150, " Занадто довгий ", Справжній, " Нудний ") Кінець Sub
Крок 6: Відображення значення B за допомогою функції msgbox.
Sub Sample1 () Dim A As Integer Dim B As String A = Діапазон ("A3"). Зсув (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Довгий ", A <= 150, " Занадто довгий ", Правда, " Нудно ") MsgBox B End Sub
Крок 7: Запустіть код, натиснувши клавішу F5 або натиснувши кнопку Відтворити і побачити вихід.
У комірці A3 є фільм 2, довжина якого становила 100, а вихід такий короткий.
Перемикач VBA - приклад №3
Дозвольте використовувати оператор switch, щоб зробити визначену користувачем функцію для наведеного вище прикладу, щоб ми могли використовувати її на своєму робочому аркуші, коли це потрібно.
Виконайте наведені нижче дії для використання заяви про перемикання в Excel VBA:
Крок 1: У цьому ж модулі оголосимо функцію, яку називають довжиною плівки.
Функція FilmLength (Подовження як цілий) як функція String End
Крок 2: Тепер використовуйте оператор VBA Switch для визначення параметрів на основі довжини, як описано нижче,
Функція FilmLength (Leng As Integer) As String FilmLength = Switch (Long <= 70, "Too Short", length <= 100, "Short", Leng <= 120, "Long", Long <= 150, "Too Long", Правда, "Нудно") Кінцева функція
Крок 3: Тепер перейдемо до робочого аркуша, де ми мали свої дані, наберіть = FilmLength (
Крок 4: Ми бачимо, що наша функція дає аргумент як значення в комірці В2.
Крок 5: Після застосування формули натисніть клавішу enter.
Крок 6: Тепер перетягніть функцію до комірки C10 і подивіться результат.
Що потрібно пам’ятати
- Функція комутатора оцінює вираз у ній. Якщо перший вираз оцінюється істинним, то він не оцінює інші вирази.
- Якщо жоден з виразів не відповідає дійсності, він повертає помилку часу виконання.
- Нам потрібно мати оброблювач помилок в операторі переключення або виразу, щоб, якщо кожен вираз повернуто помилковим, ми не стикаємося з помилкою часу виконання.
- Перемикач схожий на випадок виписки.
Рекомендовані статті
Це посібник із перемикача VBA. Тут обговоримо, як використовувати оператор переключення в excel VBA разом з деякими практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -
- Використання функції VBA InStr
- Функція SWITCH Excel
- Випадкова кількість VBA
- КОНЦАТЕНТНА функція в Excel