Как использовать оператор select case в vba?

Ключевые моменты

  • С помощью SELECT CASE вы можете протестировать несколько условий, особенно при работе с более чем двумя.
  • Код, который вы пишете с помощью SELECT CASE, гораздо более структурирован, чем стандартный условный код.
  • Его проще изменить, когда нужно скорректировать одно или несколько значений в коде.

Что такое выбор случая VBA

VBA SELECT CASE — это оператор для проверки нескольких условий. В этом операторе вы можете указать одно условие, затем указать некоторый код, который будет выполняться, если это условие истинно, затем указать второе условие и некоторый код, который будет выполняться, если это условие истинно. Таким образом, вы можете указать несколько условий и несколько операторов.

Синтаксис выбора регистра

Ниже приведен синтаксис, которому необходимо следовать, чтобы написать оператор выбора случая.

 Select Case Test Expression Case (Condition to Test) Statement1 [Line of Code to Run if CASE 1 is TRUE] Case (Condition to Test) Statement1 [Line of Code to Run if CASE 2 is TRUE] Case Else Statement [Line of Code to Run if no CASE is TRUE] End Select

В SELECT CASE синтаксис начинается с ключевого слова «Выбрать» и заканчивается «Завершить выбор». Чтобы понять его синтаксис, нам нужно разделить его на четыре части:

синтаксис выбора регистра
  • В ПЕРВОЙ части нужно указать «тестовое выражение», на котором проверяются все условия.
  • После этого во ВТОРОЙ части нужно указать проверяемый случай (т.е. проверяемое условие).
  • Теперь в ТРЕТЬЕЙ части вам нужно написать еще один случай, в котором вам нужно проверить, является ли условие во второй части ИСТИННЫМ.
  • В конце, в ЧЕТВЕРТОЙ части, вы должны указать результат, который должен произойти, когда оба вышеперечисленных случая не являются ИСТИНОЙ.

Простой пример для понимания оператора выбора случая

Синтаксис SELECT CASE не требует пояснений, и его довольно легко использовать при написании кода. Но давайте возьмем пример и поймем его полностью. Ниже у вас есть простой код для проверки значения ячейки A1.

 Sub SelectCaseExample1() Select Case Range("A1").Value Case "Yes" MsgBox "It's a Yes." Case "No" MsgBox "It's a No" Case Else MsgBox "Can't Say" End Select End Sub

Теперь давайте разберемся в этом коде с каждой строкой:

пример-оператора-выбора случая
  • СНАЧАЛА у вас есть ключевое слово SELECT CASE и ячейка A1, которую можно использовать в качестве выражения для проверки условия.
  • SECOND , у вас есть ключевое слово CASE и условие («ДА») для проверки из ячейки A1 и код для отображения окна сообщения с сообщением «Это да», если условие, упомянутое в случае 1, истинно.
  • В-ТРЕТЬИХ, у вас снова есть ключевое слово case и условие («Нет») для проверки из ячейки A1, а также код для отображения окна сообщения с сообщением «Это нет», если условие, упомянутое во втором случае, истинно.
  • В ЧЕТВЕРТЫХ , у вас есть ключевое слово CASE ELSE и строка кода для отображения окна сообщения с сообщением «Не могу сказать», если ни один из случаев не верен.
  • В-ПЯТЫХ , у вас есть ключевое слово END SELECT для завершения оператора SELECT CASE.

Связанный: КОРОБКА СООБЩЕНИЯ VBA

Важные моменты

  • Он может проверять несколько условий и выполнять строку кода на основе результата.
  • Вы можете использовать операторы сравнения (=, >, <, <>, >=, <=) при проверке условия с помощью ключевого слова Is.
  • Вы можете использовать запятую, чтобы проверить несколько условий в одном и том же случае.
  • Вы также можете использовать диапазон чисел при проверке условия в одном случае.
  • Когда условие выполнено, VBA останавливается, чтобы проверить остальные случаи оператора.
  • Вы также можете добавить раздел else в конце, чтобы выполнить строку кода, когда ни одно из условий не выполнено.
  • Вы можете пропустить, используя оператор CASE END.

Больше примеров для использования Выберите регистр

Пришло время использовать SELECT CASE по-разному, и вот несколько полезных и важных примеров, которые вы можете изучить.

100 примеров макросов Excel

1. Выберите регистр с цифрами

При написании кода VBA для оператора SELECT CASE вы можете использовать операторы для сравнения значений. Теперь в приведенном ниже коде у вас есть операторы >, < и = для проверки условий.

выберите регистр с цифрами
 Sub SelectCaseExample1() Select Case Range("A1").Value Case Is >= 45 MsgBox "Pass" Case Is < 45 MsgBox "Fail" End Select End Sub
  • В первом случае этого оператора проверяется, превышает ли значение ячейки A1 45 или нет, и возвращает окно сообщения с сообщением «Пройдено».
  • А второй случай оператора проверяет, меньше ли значение ячейки A1 45, и возвращает окно сообщения с сообщением «Ошибка».

2. Выберите регистр с диапазоном цифр.

Вы также можете использовать диапазон чисел для проверки по условию. В приведенном ниже коде у вас есть условие с диапазоном чисел в каждом случае для проверки.

 Sub SelectCaseExample2() Select Case Range(“A1”).Value Case 45 To 100 MsgBox “Pass” Case 0 To 44 MsgBox “Fail” Case Else MsgBox “Out of Range” End Select End Sub
  • В первом случае инструкция проверяет число в ячейке A1, используя диапазон чисел от 45 до 100, и возвращает «Пройдено», если значение падает ниже этого диапазона.
  • Второй оператор имеет диапазон от 0 до 44 для проверки значения в ячейке A1 и возвращает «Fail», если значение падает ниже этого диапазона.
  • Третий оператор — case else отображает окно сообщения с сообщением «Вне диапазона», если первый и второй случаи являются ложными.

3. Использование оператора двоеточия

При написании кода для SELECT CASE вы можете использовать операторы двоеточия, чтобы записать весь регистр в одной строке.

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

использование оператора-двоеточия
 Sub SelectCaseExample3() Select Case Range(“A1”).Value Case 45 To 100: MsgBox “Pass” Case 0 To 44: MsgBox “Fail” Case Else: MsgBox “Out of Range” End Select End Sub

4. Используйте Select Case с несколькими условиями

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

выберите регистр с несколькими значениями
 Sub SelectCaseExample() Select Case Range("A1").Value Case 1, 3, 5 MsgBox "Yes" Case 2, 4, 6 MsgBox "No" Case Else MsgBox "Out of range" End Select End Sub
  • Первый случай этого кода проверит значение ячейки, если оно равно 1, 3 или 5, и вернет «Да» в окне сообщения.
  • А второй случай этого кода проверит значение ячейки A1, равно ли оно 2, 4 или 6.

5. Использование выбора регистра в пользовательской функции

Вы также можете использовать SELECT CASE при написании кода функции VBA .

выбор регистра в пользовательской функции
 Function udfGrade(student_marks As Integer) Dim myGrade As String Select Case student_marks Case Is < 40: myGrade = “Bad” Case 41 To 50: myGrade = “Average” Case 51 To 60: myGrade = “Good” Case 61 To 80: myGrade = “Very Good” Case 81 To 100: myGrade = “Excellent” End Select udfGrade = myGrade End Function

В приведенной выше функции есть пять полей для проверки оценок учащихся в ячейке. Во всех пяти случаях используется диапазон чисел и возвращается значение, определенное в операторе.

6. Использование выбора случая из вложенных условий

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

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

 Sub SelectCaseStatement() Select Case Range("A2") Case "Boy" Select Case Range("B2") Case "Commerce": MsgBox "Boy (Commerce)" Case "Science": MsgBox "Boy (Science)" End Select Case "Girl" Select Case Range("B2") Case "Commerce": MsgBox "Girl (Commerce)" Case "Science": MsgBox "Girl (Science)" End Select End Select End Sub
выбрать-случай-из-вложенных-условий

В приведенном выше коде есть три оператора выбора регистра. Существует основной оператор, который проверяет значение ячейки A2, является ли оно «Мальчик» или «Девочка».

А затем на основании результата выполняются еще две инструкции и проверяют значение ячейки B2, является ли она Коммерцией или Наукой.

Выражение CASE VS IF THEN ELSE

  • Если вы хотите проверить несколько условий, легко написать код, используя SELECT CASE вместо IF-THEN.
  • Даже в операторе SELECT CASE легко редактировать и вносить изменения по сравнению с IF-THEN.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *