打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
跟烟花入门VBA之15:Select Case 语句

 上一篇的咱们聊了IF…Then…Else语句,在块形式的IF判断中,如果条件比较多,IF…Then…Else 语句会计算每个Elseif 语句的表达式,另外当条件多时,Elseif对于代码的可读性大打折扣。

    今天我们聊聊Select Case 语句,在这些方面可以弥补IF…Then..Else不足。


    先看看Select case的语法:

    Select Case 测试表达式

        Case 表达式列表1

            语句1

        Case 表达式列表2

               语句2

        Case 表达式列表n

               语句n

        Case Else

               语句

    End Select


测试表达式:必要参数,任何数值表达式,字符串表达式或逻辑表达式

表达式列表:如果有Case出现,则为必要参数。

    形式有以下几种:

    A.表达式

    Dim strTest

    strTest = 1

    Select Case strTest

       Case 1:

           MsgBox '1'

       Case 'A'

           MsgBox 'A'

       Case Else

           MsgBox '未知值'

    End Select

    B. 表达式 TO 表达式

    要求较小的表达式要出现在TO的前面

    Dim Chenji As Integer

    Chenji = 50

    Select Case Chenji

           Case 90 To 100
            '成绩在90100区间
            MsgBox '优秀'

           Case 80 To 89

                '成绩在8089区间

                 MsgBox '优好'

           Case 60 To 79

                '成绩在6079区间

           MsgBox '及格'

           Case Else

              '上述都不满足,不及格

               MsgBox '不及格'

    End Select



    C. IS 比较运算符 表达式

    使用 Is 关键字时,则可以配合比较运算符(除 Is Like 之外)来指定一个数值范围。如果没有提供,则 Is 关键字会被自动插入。还是上面的例子,改成用IS配合比较运算符

    Dim Chenji As Integer
    Chenji = 80

    Select Case Chenji

        Case Is >= 90

              '成绩大于等于90

              MsgBox '优秀'

            Case Is >= 80
              '成绩大于等于80

                MsgBox '优好'

            Case Is >= 60

              '成绩大于等于60

                MsgBox '及格'

            Case Else

              '上述都不满足,不及格
                MsgBox '不及格'

    End Select



    上面三种形式,可以同时出现在一个CASE中,多个测试表达式列表之间用逗号分隔。

    Dim Chenji As Integer

    Chenji = 78

    Select Case Chenji
        Case 90, 91, 92, Is > 92

                MsgBox '优秀'

        Case 80, 81 To 85, Is > 85

            MsgBox '良好'

        Case Is >= 60

            MsgBox '及格'

        Case Else

            MsgBox '不及格'

    End Select



    同时可以针对字符串指定范围和多重表达式。
    在下面的例子中,Case 所匹配的字符串为:等于 everything、按英文字母顺序落入从 nuts soup 之间的字符串、以及 TestItem变量所代表的当前值。

Case 'everything','nuts' To 'soup', TestItem



    表达式列表的逻辑性要严密,否则会出现意想不到的效果。


   
    语句:当测试表达式匹配表达式列表中某一条时,则执行该条case和下一个case End select 之间的语句。
例如在上面的例子中,当成绩为61分时,匹配 is >=60 表达式列表时,则执行case is >=60case else之间的语句:msgbox “及格。这里的语句可以不止一条,可以是多行,也可以多条写在一行(通过冒号分隔,但为了代码的可读性,建议写成多行)。



    Case Else:可有可无。当 测试表达式 不匹配 Case 子句的任何部分时则执行CaseElse下面的语句(直到End select为止)。注意Case Else一般位于所有表达式列表的最后一条。


   
    另外,Select Case 语句也可以是嵌套的。但每个嵌套的 Select Case 语句必须要有相应的 End Select 语句。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第四讲 Excel vba 程序及常用语句
别怕,VBA入门级教程来了,条件语句很简单!
【小懒のVBA】程序结构之Select Case判断语句
三种基本结构语句
MySQL函数
VBA switch语句
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服