SelectCase语句教程为了避免难以弄清的复杂的嵌套的If语句,你可以使用Select Case语句代替。
它的语法为:Select Case 测试表达式Case 表达式1如果表达式1匹配测试表达式的语句Case 表达式2如果表达式2匹配测试表达式的语句Case 表达式N如果表达式N匹配测试表达式的语句Case Else如果没有表达式匹配测试表达式要执行的语句End Select你在关键字Select Case和End Select之间放置任意多个条件以测试。
子句Case Else是可选的,当你希望可能有条件表达式返回假时使用它。
在Select Case语句里,VB将每个表达式和测试表达式相比较。
这里是Select Case语句背后的逻辑。
当VB遇到Select Case子句,它记下测试表达式的值。
然后它前进到下面的第一个Case子句,如果这个表达式的值和测试表达式的值匹配的话,VB就会执行语句直到遇到另外一个Case子句并且跳到End Select语句。
然而,如果第一个Case子句后面的表达式测试结果和测试表达式不匹配时,VB就会检查每一个Case子句,直到它找到一个匹配的为止。
如果没有一个Case子句后面的表达式匹配测试表达式的值的话,VB就会跳到Case Else子句并执行该语句直到遇到关键字End Select。
注意,Case Else 子句是可选的,如果你的程序里面没有使用Case Else并且没有一个Case子句的表达式和测试表达式相匹配,VB就会跳到End Select后面的语句,并且继续执行你的程序。
我们来一个使用Select Case语句的程序例子。
在第四章里,你学习了MsgBox函数允许你显示带有一个或多个按钮的信息,你也学习了MsgBox函数的结果可以赋予一个变量。
使用Select Case语句,你现在可以基于用户按下的按钮决定采取哪个行动。
1. 在当前工程里插入一新模块2. 重命名新模块SelectCase.3. 输入下述过程TestButtons:Sub TestButtons()Dim question As StringDim bts As IntegerDim myTitle As StringDim myButton As Integerquestion = "Do you want to open a new workbook?"bts = vbYesNoCancel + vbQuestion + vbDefaultButton1myTitle = "New Workbook"myButton = MsgBox(prompt:=question, buttons:=bts, _ title:=myTitle)Select Case myButtonCase 6Workbooks.AddCase 7MsgBox "You can open a new book manually later."Case ElseMsgBox "You pressed Cancel."End SelectEnd Sub过程TestButtons的第一部分显示一个带有三个按钮的信息框:是,否和取消。