ExcelVBA 之Select Case

关键字Select Case和End Select之间放置任意多个条件以测试。子句Case Else是可选的,当你希望可能有条件表达式返回假时使用它。在Select Case语句里,VB将每个表达式和测试表达式相比较。

 

Sub TestButtons()
    Dim question As String
    Dim bts As Integer
    Dim myTitle As String
    Dim myButton As Integer
    question = "Do you want to open a new workbook?"
    bts = vbYesNoCancel + vbQuestion + vbDefaultButton1
    myTitle = "New Workbook"
    myButton = MsgBox(prompt:=question, buttons:=bts, _ title:=myTitle)
    Select Case myButton
         Case 6
                  Workbooks.Add
         Case 7
                  MsgBox "You can open a new book manually later."
         Case Else
                  MsgBox "You pressed Cancel."
         End Select
    End Sub


这里是Select Case语句背后的逻辑。当VB遇到Select Case子句,它记下测试表达式的值。然后它前进到下面的第一个Case子句,如果这个表达式的值和测试表达式的值匹配的话,VB就会执行语句直到遇到另外一个Case子句并且跳到EndSelect语句。然而,如果第一个Case子句后面的表达式测试结果和测试表达式不匹配时,VB就会检查每一个Case子句,直到它找到一个匹配的为止。如果没有一个Case子句后面的表达式匹配测试表达式的值的话,VB就会跳到Case Else子句并执行该语句直到遇到关键字EndSelect。注意,CaseElse子句是可选的,如果你的程序里面没有使用CaseElse并且没有一个Case子句的表达式和测试表达式相匹配,VB就会跳到EndSelect后面的语句,并且继续执行你的程序。

如果用户点击“是”,那么变量myButton就会被赋值常量vbYes或它对应的值6;如果用户点击“否”,那么变量myButton则赋值为常量vbNo或它对应的值7;最后,如果点击了“取消”,变量myButton的内容就等于vbCancel或2。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值