说说VBA中的SelectCase语句.docx

上传人:scccc 文档编号:14102154 上传时间:2022-02-02 格式:DOCX 页数:4 大小:25.78KB
返回 下载 相关 举报
说说VBA中的SelectCase语句.docx_第1页
第1页 / 共4页
说说VBA中的SelectCase语句.docx_第2页
第2页 / 共4页
说说VBA中的SelectCase语句.docx_第3页
第3页 / 共4页
说说VBA中的SelectCase语句.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《说说VBA中的SelectCase语句.docx》由会员分享,可在线阅读,更多相关《说说VBA中的SelectCase语句.docx(4页珍藏版)》请在三一文库上搜索。

1、说说VBA中的Select Case语句vbaifselectcase条件语句学习讲解说明it分类:ITSelect Case语句也是条件语句之一,而且是功能最强大的条件语句.它主要用于多条件判断,而且其条件设置灵活、方便,在工作中使用频率极高.本节介绍 Select Case语句的语法及 应用案例.Select Case语句的语法如下:Select Case testexpression Case expressionlist-n statements-n .Case Else elsestatements End SelectSelect Case语句包括四局部,每局部详细含义如表38-1

2、所示.表38-1 Select Case语句各局部含义局部testexpression必要参数.任何数值表达式或字符串表达式expressionlist-n如果有 Case 出现,贝U为必要参数.其形式为 expression, expression To expression , Is comparisonoperator.expression 的一个或多个组成的分界列表.To关键字可用来指定一个数值范围.如果使用To关键字,那么较小的数值要出现在To之前.使用Is关键字时,那么可以配合比拟运算符除 Is和Like之外来指定一个数值范围.如果没有提供,那么 Is关 键字会被自动插入state

3、ments-n可选参数.一条或多条语句,当 testexpression匹配expressionlist-n中的任何局部时执行elsestatements可选参数.一条或多条语句,当 testexpression不匹配Case子句的任何局部时执行在以上语法列表中,省略号代表可以使用多个条件.只要有一个Case就需要有一个statements-n ,表示条件及符合条件时的执行条件.其中elsestatements表示不符合指定条件时的执行语句,是可选参数.可以忽略 elsestatements ,也可以执行一条或者一组语句,为了让程序能够处理一些不可预见的情况,尽量使用elsestatement

4、s语句处理不符合条件时该如何回应.在Select Case的多个参数中,最复杂的是 expressionlist-n局部,它有多种表达形式,包括:lExpression直接声明一个条件值,例如 5lexpression To expression声明一个条件的范围,例如 5-10lls comparisonoperator声明一种比拟方式,例如 is 5下面的实例可以展示参数中expressionlist-n局部的多种表达形式.实例1:多条件时间判断根据当前的时间判断是上午、中午,还是下午、晚上、午夜.要求中条件比拟多,使IF, Then,需要多层嵌套,而Select Case语句会更简单.代

5、码如下:Sub时间()Dim Tim As Byte, msg As String Tim = Hour(Now) Select Case Tim Case 1 To 11 msg =上午 Case 12 msg =中午 Case 13 To 16 msg =下午 Case 17 To 20 msg =晚上 Case 23, 24 msg =午夜 End SelectMsgBox 现在是:& msg End Sub以上代码中,“Case 1 To 11表示当前时间在1点到11点,用于限定一个范围;“Case 12 是表示当前时间为12点时返回True,可用于限制一个具体的值,或者多个值.如果需

6、要罗 列多个具体的值,那么需要在每个值之间使用逗号分隔,例如“Case 23, 24.本例中不存在例外的情况,所以忽略“Case日se语句.实例2:根据成绩返回评语如果成绩小于60那么返回“不及格,60到80之间那么返回“良,80至IJ 99那么返回“优,100 分那么返回“总分值,如果成绩大于100那么是输入了错误值.利用一个Function过程来处理,其代码如下:Function 成绩(rng As Range)Select Case rngCase Is 100成绩=输入错误Case Is 60成绩=不及格Case 60成绩=及格Case 60 To 80成绩=良Case 81 To 9

7、9成绩=优Case Else 成绩=总分值 End SelectEnd Function以上代码中,Is关键词用于指定一种比拟方式,后接 Is和Like以外的比拟运算符.本例中需要限制小于0和大于100两个条件,那么Is关键词可以同行中使用两次,中间用逗号分 隔,表示罗列两个条件.Case Is 60语句在第一个条件 Case Is 100根底上再进行比拟,那么成绩-10将不符合“60这个条件,由于Select Case在处理多条件时,总是按从上到下的顺序处理. 如果改变本例的条件顺序,可能产生不同的运算结果.“Case日se语句表示如果不符合前面的所有条件,那么执行它后面的语句,本例中表示成

8、绩 为100时返回“总分值.在工作表中使用该自定义函数后,结果如图38.1所示.说说 VBA中的Select Case语句图38.1 利用Function返回成绩评语实例3:以指定格式显示星期现要求在状态栏显示今日星期,以三种方式供用户选择.具体代码如下:Sub在状态栏显示今日是星期几 ()Dim str As Stringstar:Select Case InputBox(请指定日期显示方式:& Chr(10) & 1:周一样式& Chr(10) _& 2:星期一样式& Chr(10) & 3:英文,日期显示方式,1)Case 1str = AAACase 2str = AAAACase 3

9、str = DDDDCase ElseMsgBox 录入错误,请重新录入 GoTo starEnd SelectApplication.StatusBar = Format(Date, str)End Sub本例是“ Select Case,对象不确定的实例,它在执行后由用户手动指定对象.在Select Case语句中,利用Case限制了三个条件,分别为手动录入1、2和3时的日期显示格式.但用户可能会误输入1到3范围以外的数值,使程序产生错误,那么利用Case Else语句来限制,且返回到InputBox语句处让用户重新录入,直到数值处于要求的范围内为止, 这是最理想的处理方式.实例4: Se

10、lect Case嵌套应用计算时间和IF, Then,一样,Select Case也可以多层嵌套.本例根据现在的时间判断是白天还是晚上, 如果是白天,再进行细分“上午、“正午和“下午.详细代码如下:Sub时间2()tim = Hour(Now)获取现在的时间Select Case tim 条件语句开始,第一层Case 8 To 18如果是白天Select Case tim 嵌套使用,第二层Case Is 12如果小于12MsgBox 上午Case 12如果等于12MsgBox 正午Case Else其他情况,表示13到18之间MsgBox 下午End Select结束层条件语句Case Else其他情况,外层MsgBox 晚上表示1到8之间或19到24之间End SelectEnd Sub在Select Case语句第一个条件中嵌套了一个Select Case条件语句.根据需要,还可以嵌套多层条件语句.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1