If...Then...Else 陳述式範例本範例示範
If...Then...Else 陳述式的兩種格式:「區塊格式」及「單行格式」,也示範了
If TypeOf...Then...Else
Dim Number, Digits, MyStringNumber = 53 ' 設定變數起始值。
If Number < 10
Then Digits = 1
ElseIf Number < 100
Then ' 若判斷結果為 True,則執行下一行陳述式。 Digits = 2
Else Digits = 3
End If' 使用「單行格式」語法來設定變數值。
If Digits = 1
Then MyString = "One"
Else MyString = "More than one" 利用
If TypeOf 可以判斷傳入程序的控制項是否為一文字方塊。
Sub ControlProcessor(MyControl As Control)
If TypeOf MyControl
Is CommandButton
Then Debug.Print "You passed in a " & TypeName(MyControl)
ElseIf TypeOf MyControl
Is CheckBox
Then Debug.Print "You passed in a " & TypeName(MyControl)
ElseIf TypeOf MyControl
Is TextBox
Then Debug.Print "You passed in a " & TypeName(MyControl)
End IfEnd Sub
根據某訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。的值來決定要執行哪些部份的訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。。
語法:
A.單行敘述
If condition Then [statements] [Else elsestatements] |
B.多行敘述(區塊形式語法)
If condition-1 Then
[statements]
[ElseIf condition-n Then
[elseifstatements]...
[Else
[elsestatements]]
End If
|
If...Then...Else 陳述式的語法具有以下幾個單元::
單元 | 描述 |
Condition | 必要引數,一個或多個具有底下兩種型態的運算式: |
訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。或訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。,其運算結果為 True 或 False ,如果 condition 為 訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。,則 condition 會視為 False 。 |
以 TypeOf objectname Is objecttype. 形式存在的運算式,其中的 objectname 是任何的物件引用,而 objecttype 則是任何有效的物件型態,如果 objectname 是 objecttype 所指定的一種訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。,則運算式為 True,否則為False。 |
Statements | 在區塊形式中是選擇性引數。但是在單行形式中、且沒有 Else 子句時,則為必要引數,在單行形式中,也可以有多行陳述式,各陳述式要以冒號分開。 |
Condition-n | 選擇性引數,與 condition 同。 |
Elseifstatements | 選擇性引數,如果相關的 condition-n 為 True,則執行此部份的陳述式。 |
Elsestatements | 選擇性引數,如果所有的條件式都不成立時,則執行此部份的陳述式。 |
請注意
您可以使用單行形式 ( 第一種語法 ) 來簡化程式碼,但是,區塊形式 ( 第二種語法 ) 則提供結構化與彈性的功能,而且也較容易閱讀、維護、 及除錯。
附註 在單行形式中,也可以放上多行的陳述式,只要在這些陳述式間加上冒號即可,如底下這行陳述式所示:
If A > 10 Then A = A + 1 : B = B + A : C = C + B在區塊形式中, If 陳述式必須是第一行指令行,而其中的 Else, ElseIf, 和 End If 部份可以在之前加上訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。或訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。,而區塊式 If 必須在最後加上一個 End If 陳述式。
要決定某個陳述式是否為一個區塊 If,可檢查 Then 訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。之後是什麼,如果在 Then 同一行之後,還有其它非訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。的字串,則此陳述式就是單行形式的 If 陳述式。
Else 和 ElseIf子句都是可有可無。在區塊式 If 中,您可以放置多個 ElseIf 子句,但是都必須在 Else 子句之前,區塊式 If 陳述式也可以是巢狀。
當程式執行到一個區塊式 If ( 第二種語法 ) 時,則條件式會加以測試,如果條件式為 True ,則在 Then 之後的陳述式會被執行。如果條件式為 False ,則 每個 ElseIf 部份的條件式 ( 如果有的話 ) 會輪流地計算並加以測試, 如果找到某個為 True 的條件式時,則其 Then 部份的陳述式會被執行。萬一都沒有一個 ElseIf 條件式為 True ( 或是根本就沒有 ElseIf 子句 ),則程式會執行 Else 部份的陳述式。而在執行完後,會從 End If.之後的陳述式繼續執行。
提示 對於根據單一運算式來執行多種可能的動作時,Select Case 應該會更為有用,不過,TypeOf objectname Is objecttype 子句並不能使用在 Select Case 陳述式中。
附註 TypeOf 不能用於 Object 以外,諸如 Long, Integer 等資料型態。