分享

EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

 酒心1000 2018-05-08

EXCEL中使用VBA编写宏代码程序时,需要控制程序的流程。最核心的两点,一是循环语句,VBA能够处理大量的数据,正是因为能够使用循环,不断的重复执行。二是判断语句,判断语句能够将复杂的工作流程细化成更小的模块,这是VBA能够处理更复杂问题的关键。今天我们着重汇总下VBA中判断语句的用。主要有两个,IF、Select Case。

自己最常用的是IF,在单一条件、或两个、或者更多比如三个条件判断都是比较好用的。如果是更多的话,建议用Select Case。

  • IF 判断语句

EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

  • IF ... Then ...End If 单分支

  • If 条件 Then

  • 语句1

  • 语句2

  • 语句N

  • End If

  • 之所以叫单分支是因为程序只会流向一个分支,如下图。

    EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

    比如你可以这样写,当然条件越复杂,实现的功能越复杂,代价就是代码不好理解:

    IF (n> m And m > 20) Or(m<10 And n<10)Or(m>100 Or n>100) Then m = m n

EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

  • 示例1:

  • Sub 判断是否及格()

    • score = 78

    • If score => 60 Then

      • MsgBox '及格'

    • End If

  • End Sub

  • IF...Then ...Else...End If 双分支

  • If 条件 Then

  • 语句1

  • 语句2

    Else

  • 语句3

  • 语句4

  • End If

    很明显程序会流向两个分支,如图:

EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

  • 示例2:

  • Sub 判断是否及格2()

    • score = 58

    • If score => 60 Then

      • MsgBox '及格'

    • Else

      • MsgBox '不及格'

    • End If

  • End Sub

  • IF ...Then...ElseIf...Else ...EndIf 多分支

  • If 条件1 Then

  • 语句1

  • 语句2

    ElseIF 条件2

  • 语句3

  • 语句4

    Else

  • 语句7

  • 语句8

  • End If

这个四个两个或两个以上的多条件分支,流程图如下:

EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

  • 示例3:

  • Sub 判断是否及格3()

    • score = 78

    • If score < 60 Then

      • MsgBox '不及格'

    • ElseIf score < 70 Then

      • MsgBox '及格'

    • ElseIf score < 80 Then

      • MsgBox '良好'

    • Else

      • MsgBox '优秀'

    • End If

  • End Sub

  • Select Case 选择判断语句

    当条件过多时,IF将无法完成,这是我们可以使用Select Case选择判断语句来实现。

EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

很明显的可以看出Selcet Case 在处理多条件判断是更有优势,流程图如下:

EXCEL VBA 零基础教程:判断语法汇总(办公室职场必备)

  • 示例4:

  • Sub 判断是否及格4()

    • score = 98

    • Select Case score

      • Case Is > 90

        • MsgBox '优秀'

      • Case Is > 80

        • MsgBox '良好'

      • Case Is > 60

        • MsgBox '及格'

      • Case Else

        • MsgBox '不及格'

    • End Select

  • End Sub

  • 示例5:

  • Sub 判断是否及格5()

    • score = 68

    • Select Case score

      • Case 90 To 100

        • MsgBox '优秀'

      • Case 80 To 90

        • MsgBox '良好'

      • Case 60 To 80

        • MsgBox '及格'

      • Case Else

        • MsgBox '不及格'

    • End Select

  • End Sub

  • 示例6:

  • Sub 判断月份()

    • myMonth = '四月'

    • Select Case myMonth

      • Case '一月', '二月', '三月'

        • MsgBox myMonth & ': 春'

      • Case '四月', '五月', '六月'

        • MsgBox myMonth & ': 夏'

      • Case '七月', '八月', '九月'

        • MsgBox myMonth & ': 秋'

      • Case '十月', '十一月', '十二月'

        • MsgBox myMonth & ': 冬'

    • End Select

  • End Sub

总结:

  • 如果你只要提供一个条件,简单的If…Then语句是最好的选择

  • 如果你要决定运行两个条件中的一个,那么使用If…Then…Else语句

  • 如果你的程序需要两个或多个条件,那么使用If…Then…ElseIf或者Select Case语句

  • 如果你的程序有很多条件,那么就使用Select Case语句。这个语句比If…Then…ElseIf语句更灵活并且更容易理解。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多