JSRUN 用代码说话

If…Then…ElseIf 语句

编辑教程

If…Then…ElseIf 语句

很多时候,你需要检查很多种情况,你可以使用子句ElseIf来将一些If条件结合在一起。

使用If…Then…ElseIf语句,你可以比用前面章节中的If…Then…Else语句评估更多的条件。

语法:

If 条件1 Then
条件1为真时要执行的语句
ElseIf 条件2 Then
条件2为真时要执行的语句
ElseIf 条件3 Then
条件3为真时要执行的语句
ElseIf 条件N Then
条件N为真时要执行的语句
Else
所有条件都为假时要执行的语句
End If

Else子句是可选的;如果当所有条件为假时,没有要执行的操作,那么你就可以忽略它。

技巧:ElseIf子句

你的程序里可以包括任何多个ElseIf子句和条件。ElseIf子句总是出现在Else子句之前的,只有当ElseIf子句的条件为真时,它的语句才会被执行。

示例

If ActiveCell.Value = 0 Then
    ActiveCell.Offset(0, 1).Value = "zero"
    ElseIf ActiveCell.Value >0 Then
             ActiveCell.Offset(0, 1).Value = "positive"
    ElseIf ActiveCell.Value <0 Then
             ActiveCell.Offset(0, 1).Value = "negative"
End If

该例检查当前单元格的值,并且在相邻的列贴上适当的“标签”(零,正和负)。

注意,此时没有使用Else子句。如果第一种情况(ActiveCell.Value = 0)为假,VB将跳到下一个ElseIf语句,并且评估该条件(ActiveCell.Value>0),如果该值不大于0,VB将跳到下个ElseIf并检查条件ActiveCell.Value<0。

我们来看看If…Then…Else语句在一个完整的过程中如何工作:

1. 在当前工程里插入一新模块

2. 重命名模块为IfThenElseIf

3. 输入下列过程WhatValue:

Sub WhatValue()
    Range("A1").Select
    If ActiveCell.Value = 0 Then
            ActiveCell.Offset(0, 1).Value = "zero"
       ElseIf ActiveCell.Value > 0 Then
            ActiveCell.Offset(0, 1).Value = "positive"
       ElseIf ActiveCell.Value < 0 Then
            ActiveCell.Offset(0, 1).Value = "negative"
       ‘End If (原文错误,多一个End If)
     End If
End Sub

因为你需要运行过程WhatValue好几次来测试各种条件,所以,我们给它设置个临时的快捷键。

WhatValue

4. 打开立即窗口,并且输入下列语句:

Application.OnKey "^+y", "WhatValue"

一旦按下回车键,VB就会运行OnKey方法将过程WhatValue赋予组合键Ctrl+Shift+Y。这个键盘快捷键只是临时的——当你重新启动Excel后它就不起作用了。你同样也可以用Excel界面-工具菜单-宏对话框里的选项来设置快捷键。

5. 切换到Excel界面,并激活Sheet1

6. 在单元格A1里输入0,并且按下Ctrl+Shift+Y。VB将调用过程WhatValue并在单元格B1厘米输入“zero”

7. 在单元格A1里输入任意大于0的数字,并按下Ctrl+Shift+Y,VB将再次调用WhatValue。VB评估第一种条件,因为该测试的结果为假,所以它跳到ElseIf语句。第二个条件为真,因此VB执行Then后面的语句,并且跳过下一条语句,直接到EndIf。因为EndIf后面并没有其它的语句了,该过程便结束了,单元格B1现在显示“positive”。

8. 在单元格A1里输入任意小于0的数字,并按下Ctrl+Shift+Y。这次,前面两个条件都返回假,因此VB继续检查第三个条件。因为这次的测试为真,VB就在单元格B1里贴上标签“negative”

9. 在单元格A1里输入任何文本,并按下Ctrl+Shift+Y,VB的反应是“positive”,然而,这不是个满意的答案。你也许希望VB通过显示“text”来区分开正数和文本。要使你的过程WhatValue更“聪明”些,你就需要学习如何通过使用嵌套的If…Then语句来作一些更复杂的决定。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟