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

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


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


今天我们就来学习《Excel VBA:办公自动化》教程的第6节,介绍分支结构 。
1.认识VBA:什么是VBA?
2.这些掌握了 , 你才敢说自己懂VBA
3.VBA变量5年踩坑吐血精华总结
4.VBA中重要的强制申明,谁看谁明白
5.VBA掌握循环结构,包你效率提高500倍

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

1.基础版分支结构


案例:根据单元格的分类方法,判断左侧的各位富豪应该获得什么富豪尊称?
精通VBA分支结构,少写程序100行

我们首先依据「分类方法1」看上述富豪的尊称
精通VBA分支结构,少写程序100行

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


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


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

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


没错,这就需要用到新知识点「IF分支结构语句」
精通VBA分支结构,少写程序100行

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


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


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


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


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


那么套用到上述的案例中,我们以判断「第1行王兴」为例:
精通VBA分支结构,少写程序100行

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


(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行】

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

(5)分支结构语句
精通VBA分支结构,少写程序100行

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


写完上述代码后,我们运行后看结果
精通VBA分支结构,少写程序100行

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


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



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


2.升级版分支结构


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


我们依据「分类方法2」看上述富豪的尊称
精通VBA分支结构,少写程序100行

这时候我们发现,代码思路还是原来的思路,就仅仅是层级变多了而已,那么根据这道题 , 我们仅简单修改下就好 。
精通VBA分支结构,少写程序100行

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



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


3.关系运算


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


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


而我们在VBA中常用的「关系运算符」主要有以下4种:
大于(>),小于(<),等于(=),不等大于(<< span="">>)


4.总结


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


(1)用好分支结构,程序更智能
精通VBA分支结构,少写程序100行



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


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


5.思考题


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


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


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



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


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

相关经验推荐