2024年4月19日发(作者:)
Excel VBA编程 Select Case语句
该语句的结构为选择程序结构,它根据表达式的值,来判断执行几组语句中的其中哪一个语
句。虽然前面介绍的IF…Then…Else结构比较简单,但是当添加太多的Else if子句时,会使
代码变得繁琐。
Select Case是IF…Then…Else结构的一种变通形式,可使代码变得简练易读。但是,并不是
所有的多分支结构均可用Select Case语句代替If语句。
语法:
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
Select Case语句的语法具有以下几个部分:
testexpression 必要参数。任何数值表达式或字符串表达式。
expressionlist-n 如果有Case出现,则为必要参数。其形式为expression,expression To expression,
Is comparisonoperator expression的一个或多个组成的分界列表。To关键字可用来指定一个数值
范围。如果使用To关键字,则较小的数值要出现在To之前。使用Is关键字时,则可以配合比
较运算符(除Is和Like之外)来指定一个数值范围。如果没有提供,则Is关键字会被自动插入。
statements-n 可选参数。一条或多条语句,当testexpression匹配expressionlist-n中的任何部分
时执行。
elsestatements 可选参数。一条或多条语句,当testexpression不匹配Case子句的任何部分时执
行。
下面的示例使用Select Case语句来判断变量的值。
Dim Number
Number = 8 ' 设置变量初值。
Select Case Number ' 判断 Number 的值。
Case 1 To 5 ' Number 的值在 1 到 5 之间,包含1 和 5 。
"Between 1 and 5"
Case 6, 7, 8 ' Number 的值在 6 到 8 之间。
"Between 6 and 8"
Case 9 到 10 ' Number 的值为 9 或 10。
"Greater than 8"
Case Else ' 其他数值。
"Not between 1 and 10"
End Select
其中,在Select Case语句的使用过程中,应注意以下几点内容:
如果testexpression与任何Case expressionlis 表达式匹配,则执行此Case子句和下一个Case子
句之间的语句,对于最后的子句,则会执行该子句到End Select之间的语句,然后控制权会转到
End Select之后的语句。如testexpression与多个Case子句中的expressionlist表达式匹配,则只
有第一个匹配后的语句被执行。
Case Else 用于指示若在testexpression和任何其他Case选项的expressionlist之间未找到匹配,
则执行elsestatements。虽然不是必要的,但最好是将Case Else语句置于Select Case块中以处理
不可预见的testexpression值。如果没有Case expressionlist与testexpression匹配且无Case Else
语句,则继续执行End Select之后的语句。
Select Case语句可以是嵌套的,每一层嵌套的Select Case语句必须有与之匹配的End Select语句。


发布评论