【烟花原创】VBA零基础之第14篇 IF...Then..Else语句

前面讲了过程的声明,变量和常量的声明,以及赋值语句。今天咱们聊聊IF…Then…Else语句。
    在工作表中,写公式时大家对IF函数应该不陌生,根据条件的不同,返回不同的值。
    在VBA中,我们通过使用IF语句实现根据表达式的值有条件的执行一组语句。
    语法
    单行形式
    IF 条件 Then 语句1 Else 语句2
    条件一般为数据表达式或字符串表达式,其运算结果为True或False。
    在没有Else子句时,语句1则为必选参数。有Else语句时语句2则为必选参数
    Dim a As Integer, b As Integer
    a= 10
    b= 20
    If a > b Then Else MsgBox "a小于b"
    Rem 省略语句1
   If a < b Then MsgBox "a大于b"
    REM 省略了ELSE子句
    IF a=b then msgobx "a等于b“ else msgbox "a不等于b”
    REM 语句1,语句2都具备。
  
   在单行模式下也可以执行多条语句。要求所有的语句必须在同一行上并且以冒号分开
    Dim a As Integer, b As Integer, c As Boolean
   a= 10
   b= 20
   If a > b Then Else MsgBox "a<b": c = a > b

块形式:

   提供更强的结构化与适应性,并且通常也是比较容易阅读、维护及调试。
    要决定某个语句是否为一个 If 块,可检查 Then 关键字之后是什么。
   如果在 Then 同一行之后,还有其它非注释的内容,则此语句就是单行形式的 If 语句。

简单的IF块:

   If 条件 Then
      语句1
      …
   End if
    例如:
    Dim a As Integer, b As Integer
    a= 10
    b= 20
    If a > b Then
      MsgBox "a小于b"
   End IF
   复杂的IF块
   If 条件 then
         语句1
   Elseif 条件2 Then
      语句2
   Elseif 条件3 Then
      语句3
   Else
      其他语句…
   End if

当程序运行到一个 If 块,条件1 将被测试。如果条件1 为 True,则在 Then 之后的语句会被执行。
   如果条件1 为 False,则每个 ElseIf 部分的条件式(如果有的话)会依次计算并加以测试。
   如果找到某个为 True 的条件时,则其紧接在相关的 Then 之后的语句会被执行。
   如果没有一个 ElseIf 条件式为 True(或是根本就没有 ElseIf 子句),则程序会执行 Else 部分的语句。
   而在执行完 Then 或 Else 之后的语句后,会从 End If 之后的语句继续执行。

   Else 和 ElseIf 子句都是可选的。在 If 块中,可以放置任意多个ElseIf 子句,但是都必须在 Else 子句之前。
   例如:
   Dim lChenji As Byte
   Dim strResult As String
    lChenji = 50
    If lChenji > 90 Then
          '条件1:成绩是否大于90分
       strResult = "优秀"
   ElseIf lChenji > 80 Then
       '条件2:成绩是否大于80分
       strResult = "良好"
   ElseIf lChenji >= 60 Then
       '条件3:成绩是否大于等于60分
       strResult = "及格"
    Else
          '所有以上条件都不满足时,不及格
       strResult = "不及格"
    End If
   MsgBox strResult
   另外If 块也能像IF函数实现嵌套,还是上面的例子,改成IF嵌套
   Dim lChenji As Byte
   Dim strResult As String

lChenji = 80
   If lChenji >= 60 Then
      '先判断成绩是否及格
      If lChenji > 90 Then
         '子条件1:成绩是否大于90分
         strResult = "优秀"
      ElseIf lChenji > 80 Then
         '子条件2:成绩是否大于80分
         strResult = "良好"
      Else
         '上述子条件不满足的情况下
         strResult = "及格"
      End If
   Else
      '不及格
      strResult = "不及格"
   End If
   MsgBox strResult

在IF多重判断的情况下,对于条件的使用一定要严谨。

(0)

相关推荐

  • VBA--流程控制之If...Then...Else语句

    点击上方 蓝色 文字  关注我们吧! 送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 满足某些条件下进行一定的处理,以及实现反复进行相同操作的语句,就是流程控制 ...

  • 多条件IF判断,块IF语句

    我们设计一个按钮,对A1单元格进行判断,如果只有两个情况,我们直接用IF一行代码即可以完成. Private Sub CommandButton1_Click() If [a1].Value = &q ...

  • 【烟花原创】VBA零基础之第30篇 对象(五)

    一篇我们讲了如何引用对象,主要是通过从对象集合中进行引用,今天我们讲讲如何使用对象变量来引用对象. 什么是对象变量呢? 前面已经有过讲变量了,通俗的说,就是变量的类型是对象类型,象单元格,工作表,工作 ...

  • 【烟花原创】VBA零基础之第28篇 对象(三)

    上一篇讲到了对象,在VBA中,还有一个非常重要的概念:集合Collections 集合是一个包含一组类型相同的对象集.另外,其实集合自身也是一个对象. 下面列出一有些经常使用到的集合对象: 工作簿集合 ...

  • 【烟花原创】VBA零基础之第12篇 常量

    上一篇讲了变量,这一讲咱们聊聊常量(也有MS管叫常数). 一.什么是常量     常量就是程序在运行时保持一个固定的值的命名项目.     常量可以是字符串,数值,另一常量,或者任何(除Is之外) 算 ...

  • 【烟花原创】VBA零基础之第29篇 对象(四)

    引用对象是非常重要的,因为在代码里访问对象时必须指明需要操作的对象. 例如在日常中我们找某人的,肯定会喊某人的名字(不认识的可以喊美女帅哥),人家才会理你. 可在VBA代码中,你必须实打实的指明某个特 ...

  • 【烟花原创】VBA零基础之第27篇 对象(二)

    上一篇我们讲到Excel自身就是一个对象,应用程序(Application)是这个对象层次中的最顶层,下面列出了在Application对象中一些经常使用到的对象: 引用Addin 窗口Window ...

  • 【烟花原创】VBA零基础之第26篇 对象(一)

    对象,这词大家再熟悉不过了,此对象非彼对象. 对象代表应用程序中的元素. 例如在Excel中,我们用到的单元格,工作表,工作簿,图表,数据透视表等等都是对象. 引用JAVA<编程思想>里面 ...

  • 【烟花原创】VBA零基础之第19篇 Goto语句

    通过Goto语句,可以无条件地转移到过程中的指定的行,从而实现不同程序段间作流程控制. 语法: GoTo Line Line:必要参数,line可以是过程内任意的行号或行标签. 什么是行号? 用来识别 ...

  • 【烟花原创】VBA零基础之第18篇 Do…Loop循环 (二)

    上一篇讲的是当使用 While 关键字去检查 Do...Loop 语句中的条件时,有两种方法. 可以在进入循环之前检查条件,也可以在循环至少运行一次之后才检查条件. 今天要讲的是在Do-Loop循环中 ...

  • 【烟花原创】VBA零基础之第17篇 Do…Loop循环 (一)

    上一篇聊过了以指定次数执行语句的For Next循环,但是当我们不知道循环具体会运行多少次,但能通过某种条件的变化来实现控制循环的开始和结束,这便是今天咱们要聊聊的的Do-Loop循环. 一.当条件为 ...