上一节分享后,有同学私信和我说:猴子,上次说的“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」,也就是下面的“王兴” 。
【精通VBA分支结构,少写程序100行】
(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分支结构」实现一键自动判断所有富豪的尊称呢?
欢迎在留言区写下你的答案 。
推荐:人工智能时代的必学技能