Оператор Select CaseSelect Case statement

Выполняет несколько групп операторов в зависимости от значения выражения.Executes one of several groups of statements, depending on the value of an expression.

СинтаксисSyntax

Выбор варианта тестекспрессионSelect Case testexpression
[ Case експрессионлист – n [ Операторы – n ]][ Case expressionlist-n [ statements-n ]]
[ Case Else [ elseifstatements ]][ Case Else [ elsestatements ]]
End SelectEnd Select


Синтаксис оператора Select Case состоит из следующих частей:The Select Case statement syntax has these parts:

ЧастьPart ОписаниеDescription
тестекспрессионtestexpression Обязательный.Required. Любое числовое выражение или строковое выражение.Any numeric expression or string expression.
експрессионлист – nexpressionlist-n Обязательный параметр, если используется оператор Case.Required if a Case appears.

Список с разделителями из одной или нескольких следующих форм: Expression, ExpressiontoExpression, является выражением__компарисоноператор .Delimited list of one or more of the following forms: expression, expressionToexpression, Iscomparisonoperator expression.

Ключевое слово to определяет диапазон значений.The To keyword specifies a range of values. Если вы используете ключевое слово To, то наименьшее значение должно быть указано до To.If you use the To keyword, the smaller value must appear before To.

Используйте ключевое слово Is с операторами сравнения (кроме Is и Like) для указания диапазона значений.Use the Is keyword with comparison operators (except Is and Like) to specify a range of values. Если этот параметр не указан, автоматически вставляется ключевое слово Is.If not supplied, the Is keyword is automatically inserted.
операторы: nstatements-n Необязательно.Optional. Один или несколько операторов, выполняемых, если тестекспрессион соответствует любой части експрессионлист – n.One or more statements executed if testexpression matches any part of expressionlist-n.
elsestatementselsestatements Необязательный параметр.Optional. Один или несколько операторов, которые выполняются, если testexpression не соответствует какому-либо из выражений Case.One or more statements executed if testexpression doesn't match any of the Case clause.

ПримечанияRemarks

Если тестекспрессион соответствует любому выражению експрессионлист case , Операторы , следующие за предложением case , выполняются до следующего предложения case , или, для последнего предложения, до конца SELECT.If testexpression matches any Case expressionlist expression, the statements following that Case clause are executed up to the next Case clause, or, for the last clause, up to End Select. Затем контроль передается оператору после End Select.Control then passes to the statement following End Select. Если testexpression совпадает с выражением expressionlist в нескольких предложениях Case, выполняются только операторы после первого совпадения.If testexpression matches an expressionlist expression in more than one Case clause, only the statements following the first match are executed.

Предложение Case Else используется для указания того, что выражения elsestatements выполняются, если не обнаружено совпадение между testexpression и expressionlist в других предложениях Case.The Case Else clause is used to indicate the elsestatements to be executed if no match is found between the testexpression and an expressionlist in any of the other Case selections. Хотя это необязательно, рекомендуется использовать оператор Case Else в блоке Select Case для обработки непредвиденных значений testexpression.Although not required, it is a good idea to have a Case Else statement in your Select Case block to handle unforeseen testexpression values. Если ни один из вариантов експрессионлист не соответствует Тестекспрессион , а оператор Case Else отсутствует, выполнение продолжается с оператора, следующего за End Select.If no Case expressionlist matches testexpression and there is no Case Else statement, execution continues at the statement following End Select.

В предложении Case можно использовать несколько выражений или диапазонов.You can use multiple expressions or ranges in each Case clause. Например, допустима следующая строка.For example, the following line is valid:

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber 

Примечание

Оператор сравнения Is — не то же самое, что ключевое слово Is, используемое в операторе Select Case.The Is comparison operator is not the same as the Is keyword used in the Select Case statement.

Вы также можете указать диапазоны и несколько выражений для строк символов.You also can specify ranges and multiple expressions for character strings. В следующем примере регистр совпадение соответствует строкам, everythingравным строкам, которые находятся в nuts разных soup и в алфавитном порядке, а текущее значение TestItem:In the following example, Case matches strings that are exactly equal to everything, strings that fall between nuts and soup in alphabetic order, and the current value of TestItem:

Case "everything", "nuts" To "soup", TestItem 

Операторы Select Case могут быть вложенными.Select Case statements can be nested. Каждый вложенный оператор Select Case должен иметь сопоставленный оператор End Select .Each nested Select Case statement must have a matching End Select statement.

ПримерExample

В этом примере оператор Select Case используется для оценки значения переменной.This example uses the Select Case statement to evaluate the value of a variable. Второе предложение Case содержит значение оцениваемой переменной, поэтому выполняется только связанный с ним оператор.The second Case clause contains the value of the variable being evaluated, and therefore only the statement associated with it is executed.

Dim Number 
Number = 8    ' Initialize variable. 
Select Case Number    ' Evaluate Number. 
Case 1 To 5    ' Number between 1 and 5, inclusive. 
    Debug.Print "Between 1 and 5" 
' The following is the only Case clause that evaluates to True. 
Case 6, 7, 8    ' Number between 6 and 8. 
    Debug.Print "Between 6 and 8" 
Case 9 To 10    ' Number is 9 or 10. 
Debug.Print "Greater than 8" 
Case Else    ' Other values. 
    Debug.Print "Not between 1 and 10" 
End Select

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.