Select Case 语句

执行几组语句之一,具体取决于表达式的值。

语法

选择 Casetestexpression
[ Caseexpressionlist-n [ statements-n ]]
[ Case Else [ elsestatements ]]
End Select

Select Case 语句语法包含以下部分:

Part 说明
testexpression 必填。 任何数值表达式字符串表达式
expressionlist-n 在出现一个 Case 时是必需的。

以下一个或多个窗体的分隔列表: expressionexpressionToexpressionIscomparisonoperator表达式

To关键字 (keyword) 指定值的范围。 如果使用 To 关键字,则更小的值必须在 To 的前面显示。

Is 关键字与比较运算符一起使用(IsLike 一起使用的情况除外)可指定值的范围。 如果未提供 Is 关键字,则将自动插入它。
statements-n 可选。 如果 testexpressionexpressionlist-n 的任何部分匹配,则执行一个或多个语句。
elsestatements 可选。 在 testexpressionCase 子句的任意部分均不匹配时执行的一个或多个语句。

备注

如果 testexpression 与任何 Case表达式列表表达式匹配,则 Case 子句后面的语句将执行到下一个 Case 子句,或者,对于最后一个子句,将执行到 End Select。 然后,控制权将传递到 End Select 后面的语句。 如果 testexpression 与多个 Case 子句中的 expressionlist 表达式匹配,则仅执行第一个匹配项后面的语句。

Case Else 子句用于指示在任何其他 Case 选择中的 testexpressionexpressionlist 之间未找到匹配项时要执行的 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。