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