W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
有時候,作決定是基于測試表達(dá)式的條件,例如它是否大于,小于,等于或使用一些其它的關(guān)系運算符(參見表5-1)。關(guān)鍵字Is使你能夠在Case子句里使用條件表達(dá)式。使用關(guān)鍵字Is的SelectCase語句的語法如下:
表5-1 VBA中的關(guān)系運算符
Select Case 測試表達(dá)式
Case Is 條件1
如果條件1為真時執(zhí)行的語句
Case Is 條件2
如果條件2為真時執(zhí)行的語句
Case Is 條件N
如果條件N為真時執(zhí)行的語句
End Select
例如,我們來比較幾個數(shù)字:
Select Case myNumber
Case Is <10
MsgBox "The number is less than 10"
Case 11
MsgBox "You entered eleven."
Case Is >=100
MsgBox "The number is greater than or equal to 100."
Case Else
MsgBox "The number is between 12 and 99."
End Select
假設(shè)變量myNumber為120,那么第三個Case子句為真,并且只有Case Is >=100和Case Else之間的語句會被執(zhí)行。
Select Case unitsSold
Case 1 to 100
Discount = 0.05
Case Is <= 500
Discount = 0.1
Case 501 to 1000
Discount = 0.15
Case Is >1000
Discount = 0.2
End Select
我們來分析一下上面的Select Case代碼塊,假設(shè)變量unitsSold當(dāng)前值為99。VB將變量unitsSold的值與Case子句的條件表達(dá)式進(jìn)行比較。第一和第三條Case子句示范如何通過使用關(guān)鍵字To在條件表達(dá)式里使用數(shù)值范圍。因為unitsSold=99,第一個Case子句里的條件表達(dá)式為真,因此,VB將0.05賦給變量Discount。第二個Case子句如何呢?它也為真。盡管,很明顯99小于等于500,VB不會執(zhí)行相關(guān)的語句Discount=0.1。原因是,一旦VB找到了一個真條件的Case子句,它就不會去管其它的Case子句,它將跳過那些代碼,繼續(xù)執(zhí)行End Select語句后面可能有的語句。Sub DisplayDiscount()
Dim unitsSold As Integer
Dim myDiscount As Single
unitsSold = InputBox("Enter the number of sold units:")
myDiscount = GetDiscount(unitsSold)
MsgBox myDiscount
End Sub
Function GetDiscount(unitsSold As Integer)
Select Case unitsSold
Case 1 To 200
GetDiscount = 0.05
Case Is <=500
GetDiscount = 0.1
Case 501 To 1000
GetDiscount = 0.15
Case Is >1000
GetDiscount = 0.2
End Select
End Function
3. 將光標(biāo)放在過程DisplayDiscount的任意地方并且按下F5來運行它。過程DisplayDiscount將儲存于變量unitsSold的值傳遞給函數(shù)GetDiscount。當(dāng)VB遇到SelectCase語句時,它檢查第一個Case子句里的值是否合儲存于unitsSold里面的值是否匹配。如果匹配,VB給函數(shù)名稱賦值百分之五(0.05),并且跳到關(guān)鍵字EndSelect。因為,在函數(shù)過程里面沒有更多需要運行的語句,VB就返回主調(diào)過程——DisplayDiscount,在這里,它將函數(shù)的結(jié)果賦予變量myDiscount。最后的語句用信息框來顯示獲得的折扣。Select Case myMonth
Case "January", "February", "March"
Debug.Print myMonth & ": 1st Qtr."
Case "April", "May", "June"
Debug.Print myMonth & ": 2nd Qtr."
Case "July", "August", "September"
Debug.Print myMonth & ": 3rd Qtr."
Case "October", "November", "December"
Debug.Print myMonth & ": 4th Qtr."
End Select
技巧:Case子句的多個條件Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: