Select Case 陳述式

根據運算式的值,執行陳述式的其中一個群組。

語法

選擇案例測試表達式
[ 格表達表-n [ 陳述-n ]]
[其他案例[ elsestatements ]]
結束選取

Select Case 陳述式語法具有下列部分:

部分 描述
testexpression 必要。 任何數值運算式或字串運算式。
expressionlist-n 如果 Case 顯示則為必需。

以下一種或多種形式的分隔列表: 表達式、 表達式、對表達式、 是比較算子表達式。

To關鍵字指定一組數值。 如果您使用關鍵字 To,較小值必須出現在 To之前。

使用關鍵字 Is 和 比較運算子(除了 Is和Like 之外) 來指定值的範圍。 如果未提供,關鍵字 Is會自動插入。
statements-n 選用。 如果 testexpression 符合 expressionlist n 的任何部分,一或多個陳述式就會執行。
elsestatements 選用。 如果 testexpression 符合任何 Case 子句,一或多個陳述式就會執行。

註解

若 testexpression 符合任何 Caseexpressionlist 表達式,該 Case 子句後續的語句會執行至下一個 Case 子句,或對最後一個子句執行至 End Select。 然後控制項傳到 End Select 後面的陳述式。 如果 testexpression 與多個 Case 子句中的 expressionlist運算式相符,只有第一個相符項目後面的陳述式會執行。

Case Else 子句用來表示,在任何其他 Case選取項目中的 testexpression 與 expressionlist 之間找不到相符值時,elsestatements 就會被執行。 雖然並非必要,最好將在您的 Select Case 區塊有一個 Case Else陳述式來處理未預料到的 testexpression 值。 若沒有任何 Case表達表 與 testexpression 相符,且沒有 Case Else 陳述式,執行則從 End Select 之後的陳述式繼續執行。

在每個 格 子句中使用多個表達式或範圍。 比方說,下面這行是有效的:

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

注意事項

Is 比較運算子和用於 Select Case 陳述式的 Is關鍵字並不相同。

您也可以指定範圍和多個字元為字元字串。 在下列範例中,Case符合和 everything 完全相等的字串、落在 nuts 與 soup 之間依字母順序的字串和 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 支援與意見反應。