网站首页 > 基础教程 正文
上一节分享后,有同学私信和我说:猴子,上次说的“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分支结构」实现一键自动判断所有富豪的尊称呢?
欢迎在留言区写下你的答案。
推荐:人工智能时代的必学技能
- 上一篇: 编程专题:JAVA语法基础(流程控制 if else)
- 下一篇: ABB机器人IF条件判断指令
猜你喜欢
- 2024-11-20 一文搞懂Golang条件判断:if-else语句详解
- 2024-11-20 无需If-Else语句,状态模式即可编写干净可维护的代码
- 2024-11-20 答应我,别再if/else走天下了可以吗
- 2024-11-20 如何对SpringBoot中的IF-ELSE语句进行优化?
- 2024-11-20 道哥说编程--Java流程控制语句if--else详解
- 2024-11-20 if-elif-else,三目运算符,while条件循环,for迭代循环
- 2024-11-20 设计模式:策略模式避免多重分支语句(ifelse)
- 2024-11-20 Excel VBA流程图解之IF语句,多层IF嵌套,其实很简单
- 2024-11-20 4.2 练习编写简单的if语句和else语句
- 2024-11-20 C/C++编程笔记:if—else语句块,有个细节需要注意
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)