几乎百分之九十九的程序,都会用到条件语句。VBA代码编写时,也毫不例外地会用条件语句或选择语句。我们日常使用,只需要记着这二种:
条件语句(If……Then……End If)
选择语句(Select Case……End Select)
(下文中的可执行语句的意思,是可以为对像属性或方法的执行或属性、变量的赋值的动作,其目的区别于能够输出或得到值的表达式。)
条件语句,说起来很简单,但初学者可能时不时地晕掉。因为条件语句有很多的样式,有时有Else,有时有End If,有时二者都没有,有时只有一个。那么怎么来区分什么格式是有效正确的写法呢?一一解释如下:
If … Then …
单行语句,只返回一种条件判断的结果,判断式必须为表达式(下文同解义),返回结果为可执行的语句,可以没有End If。但要求必须判断与结果都在同一行上。
If … Then … Else …
单行语句,可返回二种条件判断的结果,可以没有End If。同样要求必须判断与结果都在同一行上。
If … Then
…
End If
多行语句,只返回一种条件判断的结果。多行语句,返回的结果表达语句要另起一行,并且必须要有结束语句End If。
If … Then
…
Else
…
End If
多行语句,并且可以返回二种结果。返回的结果需要单独起行,必须为完整的结构和结束语句。
If … Then
…
ElseIf … Then
…
Else
…
End If
多行语句,并且可以返回多个结果。同样,返回的结果需要单独起行,可以有多个ElseIf … Then这样的语句,并且需要注意的是,从上往下进行判断,只要中间有一个条件满足并返回结果后,就忽略下面的其他语句而直接跳转到结束语句End If上。
我们只需要认识IF语句有几种形式并需要注意什么就行了,使用起来也是非常简单。所以也不需要举例了,读者可以自己随便在网上找一段代码分析下,看看符合上面的哪一种情况。总结就一句话,条件语句若为单行结构,可以没有结束语句,其他形式必须有结束语句。条件判断式必须为表达式,返回结果须为可执行语句代码。
需要说明的是,条件语句还有一种特殊格式,那就是 IIf(…, …, …)这种条件语句,类似于工作表函数的IF函数,真接返回一个结果值,所以在这个语句中有三个参数,参数必须为值或输出值,不能是可执行的语句代码。
选择语句
除了IF条件语句,还有不能不知道选择语句。其主要书写结构形式如下:
Select Case 主表达式
Case 判断式或值或区间的表达
需要返回或执行的语句
……'(这里可以写多个条件选择组语句)
Case Else
当上面的所有条件都不满足时执行此句
End Select
下面作下解释:
主表达式,必须能返回输出值的表达式,不能是可执行的语句。
判断式或值或区间的表达,必须为判断式的表达式,可以有“ Case Is = 10”、“Case Is < 9, Is > 50”、“Case 1 To 5”、“Case 6,7,8”、“Case 1 到 5”等形式,所以Case最灵活的地方也是在这里。可以多种判断表达在一起。
需要返回或可执行的语句,不用多说,同于条件语句中返回的结果。
必须记着的是,判断选择顺序是自上而下,执行中只要有一个条件满足执行输出后,就直接跳转到结束语句(既使下面还有符合条件的语句也忽略)。
看到这里,结合前面的几节的知识介绍,我们就可以作一些简单的代码了。动手,是编写代码提高水平的唯一途径。
请试着完成以下作业:编写VBA代码,完成对学生成绩的评级(灰色区)
联系客服