美文网首页
精通VBA分支结构,少写程序100行

精通VBA分支结构,少写程序100行

作者: 猴子数据分析 | 来源:发表于2020-10-16 14:56 被阅读0次

    上一节分享后,有同学私信和我说:猴子,上次说的“For循环结构”让程序自动化运行,确实提高了我的工作效率,但能不能够让程序更加智能一些?

    看到这位同学的私信又一个《肖申克救赎》的天台式微笑,悄悄上扬在我的嘴角。

    今天我们就来学习《Excel VBA:办公自动化》教程的第6节,介绍分支结构。

    1.认识VBA:什么是VBA?

    2.这些掌握了,你才敢说自己懂VBA

    3.VBA变量5年踩坑吐血精华总结

    4.VBA中重要的强制申明,谁看谁明白

    5.VBA掌握循环结构,包你效率提高500倍

    1.基础版分支结构

    案例:根据单元格的分类方法,判断左侧的各位富豪应该获得什么富豪尊称?

    我们首先依据「分类方法1」看上述富豪的尊称

    通过观察可以发现,分类方法1中只包含2个层级,而各个层级的判断标准依据身价的数值大小。

    看到这里,具有职业敏感度的我们肯定会将上述翻译为下面的中文。

    那么,同学可能就问了:思路已经很清晰了,可是怎样让这个思路变为VBA代码执行呢?

    没错,这就需要用到新知识点「IF分支结构语句」

    从上图我们可以看到,「IF分支结构语句」主要由3部分组成:

    (1)分支1

    其标准的书写格式是「IF xxx then」,意思是:如果(if)符合判断的条件xxx, 那么(then)

    (2)分支内容

    分支内容就是符合判断条件后,需要执行的语句

    (3)分支2

    标准写法是「Else」,意思是:不符合分支1,判断是否符合分支2

    (4)分支结束

    其标准的书写格式是「End IF」,意思是:IF语句结束,跳出结构,执行下一句。

    那么套用到上述的案例中,我们以判断「第1行王兴」为例:

    接下来,我们拆解一下上述代码并还原思路:

    (1)首行输入「Option Explicit」

    这句话表示告诉VBA:注意了,我要开始使用强制申明了(上一讲的知识点,忘记可以回顾)。

    (2)输入「Sub 富豪判断()」,系统会自动将尾部的「End Sub」写出

    这句话表示告诉VBA:我写了一个名称为「富豪判断」的宏。

    (3)定义1个变量「Dim money」

    这句话表示告诉VBA:我们定义了1个变量「money」

    (4)赋值语句「money = Cells(3, 3)」

    这句话表示告诉VBA:我把「单元格C3」的值赋给了「变量money」,也就是下面的“王兴”。

    (5)分支结构语句

    这一部分表示告诉VBA:如果「变量money」也就是「单元格C3」的值,如果大于1000,那么「单元格D3」的值将是「超级富豪」;否则,「单元格D3」的值就是「富豪」。

    写完上述代码后,我们运行后看结果

    很明显,上述的程序达到了我们的预期结果,但是聪明的同学可能又提出了想法:猴子,你这就才2个层级,比较容易实现,如果我有很多个层级,向俄罗斯套娃那样,那又如何实现呢?

    不用说,又一个天台式微笑上扬嘴角。那我们就有必要升级一下我们的分支结构了。

    2.升级版分支结构

    其实,对于上述同学提出的多个层级的分支结构,也仅需要加2行代码即可实现。

    我们依据「分类方法2」看上述富豪的尊称

    这时候我们发现,代码思路还是原来的思路,就仅仅是层级变多了而已,那么根据这道题,我们仅简单修改下就好。

    我们可以看到,我们在代码汇总增加了几句「ElseIf xxx」,表示的意思是「否则如果」,即:如果上面的条件不符合,那么接着往下判断就行了。其主要的语法如下面

    上图仅展示了3级分支,如果大家实际工作汇总还有更多的判断条件,那么自己可以根据实际情况相应添加即可。

    3.关系运算

    在上述的代码过程中,大家可能没有注意,我们用到了「身价在0-1000」之间这样的描述。

    这样的描述一般表示为二者之间的大小关系,比如数学上我们熟悉的「大于 等于 小于」,在VBA中也存在各个变量、数值之间的比较,专业术语称作「关系运算符」。

    而我们在VBA中常用的「关系运算符」主要有以下4种:

    大于(>),小于(<),等于(=) ,不等大于(<< span="">>)

    4.总结

    好了,我们总结一下今天的内容

    (1)用好分支结构,程序更智能

    (2)关系运算符组合分支结构,威力巨大

    经常使用的有:大于(>),小于(<),等于(=) ,不等大于(<< span="">>)

    5.思考题

    我们在案例中仅仅以「第1行王兴」进行了判断,那么结合上次分享的内容,我们如何利用「For循环结构」和「If分支结构」实现一键自动判断所有富豪的尊称呢?

    欢迎在留言区写下你的答案。

    推荐:人工智能时代的必学技能

    相关文章

      网友评论

          本文标题:精通VBA分支结构,少写程序100行

          本文链接:https://www.haomeiwen.com/subject/vavzpktx.html