Select Case 语句
语法
选择 Casetestexpression
[ Caseexpressionlist-n [ statements-n ]]
[ Case Else [ elsestatements ]]
End Select
Select Case 语句语法包含以下部分:
Part | 说明 |
---|---|
testexpression | 必填。 任何数值表达式或字符串表达式。 |
expressionlist-n | 在出现一个 Case 时是必需的。 以下一个或多个窗体的分隔列表: expression、 expressionToexpression、 Iscomparisonoperator表达式。 To关键字 (keyword) 指定值的范围。 如果使用 To 关键字,则更小的值必须在 To 的前面显示。 将 Is 关键字与比较运算符一起使用(Is 和 Like 一起使用的情况除外)可指定值的范围。 如果未提供 Is 关键字,则将自动插入它。 |
statements-n | 可选。 如果 testexpression 与 expressionlist-n 的任何部分匹配,则执行一个或多个语句。 |
elsestatements | 可选。 在 testexpression 与 Case 子句的任意部分均不匹配时执行的一个或多个语句。 |
备注
如果 testexpression 与任何 Case表达式列表表达式匹配,则 Case 子句后面的语句将执行到下一个 Case 子句,或者,对于最后一个子句,将执行到 End Select。 然后,控制权将传递到 End Select 后面的语句。 如果 testexpression 与多个 Case 子句中的 expressionlist 表达式匹配,则仅执行第一个匹配项后面的语句。
Case Else 子句用于指示在任何其他 Case 选择中的 testexpression 和 expressionlist 之间未找到匹配项时要执行的 elsestatements。 虽然不要求这样做,但最好是在 Select Case 块中包含 Case Else 语句来处理意外的 testexpression 值。 如果没有 Case表达式列表 与 testexpression 匹配,并且没有 Case Else 语句,则继续在 结束选择后的语句处执行。
在每个 Case 子句中使用多个表达式或范围。 例如,以下行有效:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
注意
Is 比较运算符与 Select Case 语句中使用的 Is 关键字不相同。
您还可以为字符串指定范围和多个表达式。 在以下示例中, Case 匹配完全等于 everything
的字符串、按字母顺序排列在 和 soup
之间的nuts
字符串,以及 的当前值TestItem
:
Case "everything", "nuts" To "soup", TestItem
Select Case 语句可以嵌套。 每个嵌套 的 Select Case 语句都必须具有匹配的 End Select 语句。
示例
此示例使用 Select Case 语句计算变量的值。 第二个 Case 子句包含要计算的变量值,因此仅执行与其关联的语句。
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
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。