VBA基础 - 分支和循环
概要
编程语言的基础除了数据类型, 就是控制结构了. 所谓控制结构, 主要就是分支和循环.
分支
废话不说, 直接示例代码:
单条件判断
1 Sub Test()
2 If 2 > 1 Then
3 Debug.Print "xxxx"
4 End If
5 End Sub
执行后输出:
xxxx
多条件判断
if-elseif-else 结构
1 Option Explicit
2
3 Sub Test()
4 score 55
5 score 65
6 score 85
7 score 95
8 End Sub
9
10 Function score(points As Integer)
11
12 If points > 0 And points < 60 Then
13 Debug.Print "不及格"
14 ElseIf points > 80 And points < 90 Then
15 Debug.Print "良好"
16 ElseIf points >= 90 Then
17 Debug.Print "优秀"
18 Else
19 Debug.Print "及格"
20 End If
21
22 End Function
输出结果:
不及格
及格
良好
优秀
select-case 结构
1 Option Explicit
2
3 Sub Test()
4 score 55
5 score 65
6 score 85
7 score 95
8 End Sub
9
10 Function score(points As Integer)
11
12 Select Case points
13 Case 90 To 100
14 Debug.Print "优秀"
15 Case 80 To 90
16 Debug.Print "良好"
17 Case 60 To 80
18 Debug.Print "及格"
19 Case 0 To 60
20 Debug.Print "不及格"
21 End Select
22
23 End Function
输出结果:
不及格
及格
良好
优秀
异常处理
其实异常处理, 也是一种条件判断, 只不过只将异常作为条件
1 Option Explicit
2
3 Sub Test()
4 Dim x As Integer
5
6 On Error GoTo finally
7 x = 10 / 0
8
9 finally:
10 Debug.Print "发生错误"
11
12 End Sub
输出结果:
发生错误
循环
for-next
1 Option Explicit
2
3 Sub Test()
4 Dim n As Integer
5
6 Debug.Print "打印 1 ~ 10 的奇数"
7 For n = 1 To 10 Step 2
8 Debug.Print n
9 Next n
10
11 End Sub
执行结果:
打印 1 ~ 10 的奇数
1
3
5
7
9
for-each-next
1 Option Explicit
2
3 Sub Test()
4 Dim n As Variant
5
6 Debug.Print "打印 1 ~ 10 的奇数"
7 For Each n In Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
8 If Not n Mod 2 = 0 Then
9 Debug.Print n
10 End If
11 Next
12
13 End Sub
执行结果:
打印 1 ~ 10 的奇数
1
3
5
7
9
do-loop-until
1 Option Explicit
2
3 Sub Test()
4 Dim n As Integer
5
6 Debug.Print "打印 1 ~ 10 的奇数"
7 Do
8 n = n + 1
9
10 If Not n Mod 2 = 0 Then
11 Debug.Print n
12 End If
13 Loop Until n >= 10
14
15 n = 0
16
17 Debug.Print "打印 1 ~ 10 的奇数"
18 Do Until n >= 10
19 n = n + 1
20
21 If Not n Mod 2 = 0 Then
22 Debug.Print n
23 End If
24 Loop
25
26 End Sub
执行结果:
打印 1 ~ 10 的奇数
1
3
5
7
9
打印 1 ~ 10 的奇数
1
3
5
7
9
上例中, until 的位置对循环的影响:
- until 在 Do 后面: 先进行判断, 再运行循环体
- until 在 Loop 后面: 先运行循环体, 再进行判断
示例:
1 Option Explicit
2
3 Sub Test()
4 Dim n As Integer
5
6 n = 0
7 Do
8 Debug.Print "会运行"
9 Loop Until n = 0
10
11 n = 0
12 Do Until n = 0
13 Debug.Print "不会运行"
14 Loop
15
16 End Sub
执行结果如下:
会运行
do-loop-while
1 Option Explicit
2
3 Sub Test()
4 Dim n As Integer
5
6 Debug.Print "打印 1 ~ 10 的奇数"
7 Do
8 n = n + 1
9
10 If Not n Mod 2 = 0 Then
11 Debug.Print n
12 End If
13 Loop While n < 10
14
15 n = 0
16
17 Debug.Print "打印 1 ~ 10 的奇数"
18 Do While n < 10
19 n = n + 1
20
21 If Not n Mod 2 = 0 Then
22 Debug.Print n
23 End If
24 Loop
25
26 End Sub
执行结果和 until 一样:
打印 1 ~ 10 的奇数
1
3
5
7
9
打印 1 ~ 10 的奇数
1
3
5
7
9
while vs until:
- while 是满足条件运行循环体
- until 是满足条件退出循环体
VBA基础 - 分支和循环的更多相关文章
- JS基础-分支结构-循环-数组
1.分支结构 1.if结构 语法: if(条件){ 语句块: } 注意: 1.条件尽量是boolean的,如果不是boolean的,以下条件值,会当做f ...
- VBA基础——循环语句
VBA基础之循环语句 Sub s1() Dim rg As Range For Each rg In Range("a1:b7,d5:e9") If rg = "&quo ...
- javascript基础入门之js中的结构分支与循环语句
javascript基础入门之js中的结构分支与循环语句 程序的结构①顺序结构:自上而下:②选择(分支)结构:多条路径,根据不同的条件,只执行其中一个:③循环结构:重复某些代码④配合特定的语句实现选择 ...
- 了不起的分支和循环03 - 零基础入门学习Python009
了不起的分支和循环03 让编程改变世界 Change the world by program while循环 说完了分支我们来说说循环,标准的while循环语法我们已经可以熟悉掌握了. 这里我们就简 ...
- 了不起的分支和循环02 - 零基础入门学习Python008
了不起的分支和循环02 让编程改变世界 Change the world by program 上节课,小甲鱼教大家如何正确的打飞机,其要点就是:判断和循环,判断就是该是不该做某事,循环就是持续做某事 ...
- 了不起的分支和循环01 - 零基础入门学习Python007
了不起的分支和循环01 让编程改变世界 Change the world by program 我们今天的主题是"了不起的分支和循环",为什么小甲鱼不说C语言,不说Python了不 ...
- [零基础学JAVA]Java SE基础部分-04. 分支、循环语句
转自:http://redking.blog.51cto.com/27212/116751 1.课程名称:分支.循环 本季为JAVA程序中最重要的部分,在讲解的时候除了讲解各种主要的控制语句(分支语句 ...
- 零基础入门学习Python(9)--了不起的分支和循环3
前言 本节继续介绍分支和循环 知识点 while循环 Python while循环与if条件分支有点类似,在条件为真的情况下,执行某一段指定的代码.不同的是只要条件为True,while循环就会一直重 ...
- 零基础入门学习Python(7)--了不起的分支和循环1
前言 我们今天的主题,是了不起的分支和循环,为什么不说c语言,Python了不起,而对分支和循环这两个知识点那么崇拜呢? 我们之前的几节课里也接触到了分支和循环,大家思考一下,如果我们的程序没有分支和 ...
随机推荐
- Python爬虫教程-实现百度翻译
使用python爬虫实现百度翻译功能python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取发 ...
- 使用rsync基于ssh免密登陆进行备份或目录同步
日常工作中有很多的备份工作,rsync是一个很不错的工具,尝试使用基于ssh免密登陆的方式进行备份,测试成功,是可行且方便的方法,撰文记之,以备后用: 1.A主机root用户对B主机root用户做ss ...
- Oracle define用法简介教程
目录 1.define常量用法 2.&和&&符号用法 继上一篇博客Oracle绑定变量学习笔记,再写一篇define变量的简单教程 @ 1.define常量用法 注意:defi ...
- Anaconda安装第三方库与pip和conda 添加国内源
Anaconda安装第三方库 PIP使用命令 Anaconda命令 pip和conda 添加国内源 1:PIP相关命令 卸载 pip uninstall XXX 1.升级pip python -m p ...
- mysql数据库的十种查询方式及多表查询
--mysql数据库的十种查询方式 -- (1)查询时起别名 SELECT id AS '编号',NAME AS '姓名',age AS '年龄' FROM student; -- (2)查询时添加常 ...
- windows 下命令行启动 appium-desktop
启动appium-desktop如果要启动appium-desktop,双击appium.exe,启动后如下图: 启动appium-server通过下面解决方案直接启动appium-server, ...
- Javascript模块化开发4——Grunt常用模块
一.copy 用于复制文件与目录. grunt-contrib-copy 二.eslint 检测代码的合理性. grunt-eslint 常见参数: 1.quiet 是否只显示errors.默认值fa ...
- Linux war包部署jenkins
一.介绍Jenkins 1.Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Je ...
- Jenkins 有关 Maven 的内容
Jenkins Maven 插件安装 在安装完 Jenkins 后,我们想添加新的项目 为 Maven 项目时,发现找不到这个选项. 原因是我们没有安装插件 Maven Integration. 在 ...
- CLRCore(CLR核心机制)
JIT--第一次--标记已--存根--调用--查找存根--执行机器码 C#和CIL的关系: C#和N#都是CIL实现,但是彼此不能互通: C#和N#公开不分满足规范,我们才能互通 CLS就是描述多语言 ...