W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
很多時候,你需要檢查很多種情況,你可以使用子句ElseIf來將一些If條件結(jié)合在一起。使用If…Then…ElseIf語句,你可以比用前面章節(jié)中的If…Then…Else語句評估更多的條件。這里是If…Then…ElseIf語句的語法:
If 條件1 Then
條件1為真時要執(zhí)行的語句
ElseIf 條件2 Then
條件2為真時要執(zhí)行的語句
ElseIf 條件3 Then
條件3為真時要執(zhí)行的語句
ElseIf 條件N Then
條件N為真時要執(zhí)行的語句
Else
所有條件都為假時要執(zhí)行的語句
End If
Else子句是可選的;如果當所有條件為假時,沒有要執(zhí)行的操作,那么你就可以忽略它。
技巧:ElseIf子句
你的程序里可以包括任何多個ElseIf子句和條件。ElseIf子句總是出現(xiàn)在Else子句之前的,只有當ElseIf子句的條件為真時,它的語句才會被執(zhí)行。我們來看看下述例子:
If ActiveCell.Value = 0 Then
ActiveCell.Offset(0, 1).Value = "zero"
ElseIf ActiveCell.Value >0 Then
ActiveCell.Offset(0, 1).Value = "positive"
ElseIf ActiveCell.Value <0 Then
ActiveCell.Offset(0, 1).Value = "negative"
End If
該例檢查當前單元格的值,并且在相鄰的列貼上適當?shù)摹皹撕灐保?,正和負)。注意,此時沒有使用Else子句。如果第一種情況(ActiveCell.Value = 0)為假,VB將跳到下一個ElseIf語句,并且評估該條件(ActiveCell.Value>0),如果該值不大于0,VB將跳到下個ElseIf并檢查條件ActiveCell.Value<0。
我們來看看If…Then…Else語句在一個完整的過程中如何工作:
1. 在當前工程里插入一新模塊
2. 重命名模塊為IfThenElseIf
3. 輸入下列過程WhatValue:
Sub WhatValue()
Range("A1").Select
If ActiveCell.Value = 0 Then
ActiveCell.Offset(0, 1).Value = "zero"
ElseIf ActiveCell.Value > 0 Then
ActiveCell.Offset(0, 1).Value = "positive"
ElseIf ActiveCell.Value < 0 Then
ActiveCell.Offset(0, 1).Value = "negative"
‘End If (原文錯誤,多一個End If)
End If
End Sub
因為你需要運行過程WhatValue好幾次來測試各種條件,所以,我們給它設(shè)置個臨時的快捷鍵。
4. 打開立即窗口,并且輸入下列語句:
Application.OnKey "^+y", "WhatValue"
一旦按下回車鍵,VB就會運行OnKey方法將過程WhatValue賦予組合鍵Ctrl+Shift+Y。這個鍵盤快捷鍵只是臨時的——當你重新啟動Excel后它就不起作用了。你同樣也可以用Excel界面-工具菜單-宏對話框里的選項來設(shè)置快捷鍵。
5. 切換到Excel界面,并激活Sheet1
6. 在單元格A1里輸入0,并且按下Ctrl+Shift+Y。VB將調(diào)用過程WhatValue并在單元格B1厘米輸入“zero”
7. 在單元格A1里輸入任意大于0的數(shù)字,并按下Ctrl+Shift+Y,VB將再次調(diào)用WhatValue。VB評估第一種條件,因為該測試的結(jié)果為假,所以它跳到ElseIf語句。第二個條件為真,因此VB執(zhí)行Then后面的語句,并且跳過下一條語句,直接到EndIf。因為EndIf后面并沒有其它的語句了,該過程便結(jié)束了,單元格B1現(xiàn)在顯示“positive”。
8. 在單元格A1里輸入任意小于0的數(shù)字,并按下Ctrl+Shift+Y。這次,前面兩個條件都返回假,因此VB繼續(xù)檢查第三個條件。因為這次的測試為真,VB就在單元格B1里貼上標簽“negative”
9. 在單元格A1里輸入任何文本,并按下Ctrl+Shift+Y,VB的反應(yīng)是“positive”,然而,這不是個滿意的答案。你也許希望VB通過顯示“text”來區(qū)分開正數(shù)和文本。要使你的過程WhatValue更“聰明”些,你就需要學習如何通過使用嵌套的If…Then語句來作一些更復(fù)雜的決定。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: