先看一个实例:
Sub iVsc()
Dim a As Integer
a = Int(Rnd() * 71 + 30)
"定义一个变量a,随机赋值为30-100之间的整数
Select Case a
"把变量a作为Select Case语句“表达式”
Case 0 To 59: MsgBox "不合格"
"如果“表达式”的值在0-59(含0和59)之间则执行本行语句,否则忽略,可以使用“开始值 to 结束值" 指定一个范围
Case 60 To 75: MsgBox "合格"
Case 76 To 89: MsgBox "良好"
Case 90 To 100: MsgBox "优秀"
End Select
End Sub
注意:上面例子中Case 0 To 59: MsgBox "不合格"因为把符合条件后要执行的语句写在同一行要用英文冒号(:)连接,不然也可以像下面一样分行写
Case 0 To 59
MsgBox "不合格"
语句使用适用时机Select Case当一个表达式与几个不同的值相比较时,可以使用 Select Case 语句来交替使用在 If……Then……Else 语句中的 ElseIf。If……Then……Else 语句会计算每个 ElseIf 语句的不同的表达式,在控制结构的顶部,Select Case 语句只计算表达式一次。上例中的表达式只是一个变量值,实际中可以是其它任意表达式,不限于数值,也可以是字符串
例如:
Sub isv()
a = InputBox("你愿意和我在一起吗", "请回复是或否", "是")
Select Case a
Case "是": MsgBox "你愿和我在一起,我真的很开心"
Case "否": MsgBox "祝你幸福"
Case Else: MsgBox "你还没想好吗?"
"Case Else意思就是除了上面所列的Case以外
End Select
End Sub
虽然Select Case语句都可以使用IF语句完成,IF语句每个分支都会进行一次表达式计算,可以是不同的表达式,Select Case只在开始的时间进行一次计算,只有一个表达式,对于固定的一个表达式,使用Select Case语句会更方便,效率更高。