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

Содержание:

Anonim

Excel VBA Switch Заявление

Переключатель в VBA аналогичен функции выбора регистра. Единственная разница между ними заключается в том, что мы должны писать гораздо меньшие коды в переключателе по сравнению с выбранным регистром. Мы можем написать оператор switch внутри подпроцедуры или написать его как пользовательскую функцию в VBA.

Коммутатор в VBA оценивает выражение и выдает выходные данные на основе условий для этого выражения. В утверждениях select case мы определили случаи, что если у нас есть case, результат должен быть b и так далее. Это требовало написания большого количества кодов для оператора выбора регистра, но в Switch мы можем объединить все условия и выражения в одном операторе, а не иметь несколько операторов регистра.

Синтаксис оператора Switch

Switch вычисляет первое выражение, и если значение равно true, оно возвращает значение для выражения, а если значение для выражения 1 не соответствует true, оно продолжается для того же вычисления для выражения 2, и если результат равен true, отображается значение 2, но если выражение возвращается ложно, переключатель переходит к другому выражению.

Итак, что произойдет, если ни одно из выражений не будет истинным и все они будут возвращены как ложные, в этом случае мы получим ошибку времени выполнения, если у нас нет преимущественной обработки ошибок для такого сценария.

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

Ниже приведены различные примеры использования VBA Switch Statement в Excel.

Вы можете скачать этот шаблон VBA Switch Excel здесь - Шаблон VBA Switch Excel

VBA Switch - Пример № 1

Давайте начнем с базового примера, чтобы получить представление об операторе переключения VBA. Мы примем ввод от пользователя и на основании этого введем определим вывод. Мы будем принимать входные данные от 1 до 5, и на основе входных данных у нас будут заранее определенные результаты, но если пользователь введет любое число, кроме нашего диапазона, нам придется обработать эту ошибку.

Выполните следующие шаги, чтобы использовать Switch Statement в Excel VBA:

Шаг 1: На вкладке Visual Basic войдите в редактор VB на вкладке разработчика.

Шаг 2: В окне VB Editor вставьте новый модуль на вкладке «Вставка».

Шаг 3: Объявите новую подпроцедуру в только что созданном модуле.

Код:

 Sub Sample () End Sub 

Шаг 4: Объявите две переменные A и B, одну как целое число, а другую как строку.

Код:

 Sub Sample () Dim A As Integer Dim B As Конец строки Sub 

Шаг 5: В переменной A сохраните значение, заданное пользователем, используя функцию поля ввода.

Код:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox («Введите значение», «значение должно быть от 1 до 5») End Sub 

Шаг 6: Теперь в переменной B мы будем использовать оператор переключения VBA для оценки результата в соответствии с вводом, предоставленным пользователем.

Код:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox («Введите значение», «значение должно быть от 1 до 5») B = Переключатель (A = 1, «Один», A = 2, «Два» ", A = 3, " Три ", A = 4, " Четыре ", A = 5, " Пять ") End Sub 

Шаг 5: Показать значение, сохраненное в B, используя функцию MSGBOX.

Код:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox («Введите значение», «значение должно быть от 1 до 5») B = Переключатель (A = 1, «Один», A = 2, «Два» ", A = 3, " Три ", A = 4, " Четыре ", A = 5, " Пять ") MsgBox B End Sub 

Шаг 6: Запустите приведенный выше код, нажав клавишу F5, и он попросит нас ввести целое число. Введите номер 3 и нажмите ОК, чтобы увидеть результат.

Шаг 7: Теперь давайте повторно запустим код и введите число 6 и посмотрим, какой результат мы получим.

Мы получаем ошибку времени выполнения, так как в нашем операторе switch нет выражения для определения 6. Поэтому в таких сценариях нам нужно иметь некоторую упреждающую обработку ошибок.

Шаг 8: Чтобы преодолеть эту ошибку времени выполнения, объявите другую переменную Var как Variant.

Код:

 Sub Sample () Dim A как целое число Dim B как строка Dim var как вариант A = InputBox («Введите значение», «значение должно быть от 1 до 5») B = Переключатель (A = 1, «Один», A = 2, «Два», A = 3, «Три», A = 4, «Четыре», A = 5, «Пять») MsgBox B End Sub 

Шаг 9: Перед оператором switch используйте оператор goto on error, чтобы, если код обнаружил ошибку, он знал, куда идти.

Код:

 Sub Sample () Dim A как целое число Dim B как строка 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: Теперь определите, что произойдет, если код обнаружит ошибку,

Код:

 Sub Sample () Dim A как целое число Dim B как строка Dim var как вариант A = InputBox («Введите значение», «значение должно быть от 1 до 5») При ошибке GoTo var B = Переключатель (A = 1, «Один» ", A = 2, " Two ", A = 3, " Three ", A = 4, " Four ", A = 5, " Five ") MsgBox B var: MsgBox" Вы ввели недопустимый номер "Resume Next End Sub 

Шаг 11: Теперь давайте снова запустим код, нажав F5 или нажав кнопку Play и введя значение 6, а затем нажмите ok, чтобы увидеть окончательный результат, если в операторе switch встретится ошибка.

VBA Switch - Пример № 2

Для этого примера у меня есть данные на листе 1, которые содержат названия некоторых фильмов и их продолжительность в минутах. Основываясь на их длине, я хочу определить, является ли фильм коротким длинным или супер длинным. Посмотрите на данные ниже.

Выполните следующие шаги, чтобы использовать Switch Statement в Excel VBA:

Шаг 1: Давайте начнем с того же модуля и начнем с определения другой подпроцедуры следующим образом.

 Sub Sample1 () End Sub 

Шаг 2: Объявите две переменные A и B, одну как целое число, а другую как строку следующим образом:

 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). Значение End Sub 

Шаг 4: Теперь в переменной B, давайте используем оператор переключения VBA, чтобы определить сценарий для каждой длины фильма.

 Sub Sample1 () Dim A As Integer Dim B As String A = Диапазон ("A3"). Смещение (0, 1). Значение B = Переключатель (A <= 70, "Too Short", A <= 100, "Short" ", A <= 120, " Long ", A <= 150, " Too Long ") End Sub 

Шаг 5: Теперь, что если значение больше 180, если у нас здесь есть другой обработчик ошибок, или мы можем просто написать другое выражение как True, Value. Поскольку все другие значения будут возвращены, ложный код выполнит это выражение.

 Sub Sample1 () Dim A As Integer Dim B As String A = Диапазон ("A3"). Смещение (0, 1). Значение B = Переключатель (A <= 70, "Too Short", A <= 100, "Short" ", A <= 120, " Long ", A <= 150, " Too Long ", True, " Boring ") End Sub 

Шаг 6: Показать значение B с помощью функции msgbox.

 Sub Sample1 () Dim A As Integer Dim B As String A = Диапазон ("A3"). Смещение (0, 1). Значение B = Переключатель (A <= 70, "Too Short", A <= 100, "Short" ", A <= 120, " Long ", A <= 150, " Too Long ", True, " Скучно ") MsgBox B End Sub 

Шаг 7: Запустите код, нажав клавишу F5 или нажав кнопку Play и посмотрите результат.

Ячейка A3 имеет фильм 2, длина которого была равна 100, поэтому вывод был коротким.

VBA Switch - Пример № 3

Давайте используем оператор switch, чтобы создать пользовательскую функцию для приведенного выше примера, чтобы мы могли использовать ее в нашей рабочей таблице, когда это необходимо.

Выполните следующие шаги, чтобы использовать Switch Statement в Excel VBA:

Шаг 1: В том же модуле объявите функцию, называемую длиной фильма.

 Функция FilmLength (Leng As Integer) как функция конца строки 

Шаг 2: Теперь используйте оператор VBA Switch, чтобы определить параметры на основе длины следующим образом:

 Функция FilmLength (Leng As Integer) как строка Правда, "Скучно") End Function 

Шаг 3: Теперь давайте перейдем к рабочему листу, где у нас были наши данные, type = FilmLength (

Шаг 4: Мы видим, что наша функция дает аргумент в виде значений в ячейке B2.

Шаг 5: После применения формулы нажмите Enter.

Шаг 6: Теперь перетащите функцию в ячейку C10 и посмотрите результат.

То, что нужно запомнить

  • Функция Switch оценивает выражение в нем. Если первое выражение оценивается как истинное, оно не оценивает другие выражения.
  • Если ни одно из выражений не истинно, возвращается ошибка времени выполнения.
  • У нас должен быть обработчик ошибок в операторе switch или выражении, чтобы при каждом возвращении выражения false мы не сталкивались с ошибкой во время выполнения.
  • Переключатель похож на оператор выбора.

Рекомендуемые статьи

Это руководство по VBA Switch. Здесь обсуждается, как использовать оператор switch в Excel VBA вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Использование функции VBA InStr
  2. Функция Excel SWITCH
  3. Случайное число VBA
  4. Функция CONCATENATE в Excel