ExcelHome VBA 培训
ExcelHome VBA 培训
教师:ggsmart(叶枫)
本课内容:sub过程与程序流程控制语句
第一部分:Sub过程
什么是过程:
1、一个过程就是一组完成所需操作的VBA代码的组合。
2、VBA的过程主要包括“Sub过程”和“Function过程”(自定义函数)两种。
3、Sub过程不可以返回值,Function过程可以返回值。
声明Sub过程:
1、录制的“宏”就是一个简单的Sub过程,使用录制宏功能只能生成Sub过程的代码。
2、Sub过程的特点:以“Sub过程名()”开头,以“End Sub”结尾;Sub过程一般保存在模块里;不返回运行结果。
3、声明Sub过程:
[Public/Private][Static] Sub过程名称(参数1,参数2……..)--------public/private两个参数二选一public表明公共过程,一个工作簿所有模块的过程都可以访问这个过程;private声明为私有过程,只有同模块的过程才能访问这一过程;static表明过程结束后保存过程中的变量;sub 过程名称表明过程的开始;(参数1,参数2,…….)表明一系列的变量,过程没有参数就必须有空的括号
【语句块】
【Exit Sub】----在过程结束前,强制过程结束
【语句块】
End Sub----表示过程的结束
如果没有选择public/private就默认为公共过程,也就是相当选择了public参数。在VBA里所有可执行代码都必须属于某个过程,不能在过程里再定义过程。一个过程不限定过程的行数,它可以有一行、数百甚至数千行…..,但是随着过程行数的增加,错误也会增加。因此过长的代码可以分成几个子过程。创建一些小型过程而不是一个大过程是一个非常好的编程习惯。
4、从过程执行另一个过程:输入过程名称以及参数,参数用逗号隔开。——过程名[,参数1,参数2,…..],如果过程没有参数就可不要输入参数;在过程名以及参数前使用Call关键字,参数用括号括起来,并用逗号隔开。——call过程名[(参数1,参数2,……..)];利用application对象的run方法——application.run 表示过程名的字符串(或字符串变量)[,参数1,参数2,……]
第二部分:判断与循环语句
程序流程控制:if语句、do while循环语句、select case语句、do until循环语句、for循环语句
1、if语句:根据条件判断的不同结果来执行不同操作。语句形式——
If 逻辑表达式then
[else
语句块2]——可选
End if
流程图——
逻辑表达式值是否为真
Y
语句块
N
多条件判断语句——
If逻辑表达式then
[elseif 逻辑表达式2 then
语句块2
Elseif逻辑表达式3 then
语句块3
……..
Else
语句块n]
End if
IF语句可以嵌套。
2、select case语句
语法形式——
Select case 测试表达式——测试表达式必须为数值表达式或字符串表达式
Case 表达式列表1——表达式列表可以是用逗号分开的表达式,也可以使用to或关键字,如:case 1,2,3,4\case 1 to4\case is <4
Case表达式列表2
语句块2
Case表达式列表3 case语句后面可以用不用多重表达式,各表达式的数据类型可以不相同,它们之间是“逻辑或”的关系,如:case 1 to 4,”a”
语句块3
……….
[case else
语句块n+1]
End select
3、for----next 循环语句
For 循环变量= 初值to 终值[step步长]
循环体
[exit for]
循环体
Next 循环变量
流程图——
循环变量初始化
循环体
循环变量=循环变量+步长
循环语句结束
Y
循环变量<=(>=)终值
N
for each------next 循环语句:
Fore 元素变量in 对象集合
语句块
[exif for]
语句块
Next [元素变量]
4、Do while循环语句:
1、开头判断循环条件
Do[while循环条件]
循环体
[exit do]
循环体
Loop
2、结尾判断循环条件
Do
循环体
[exit do]
Loop [while 循环条件]
第二种比第一种多执行一次循环部分的语句。
5、Do until循环语句:
1、开头判断循环条件
Do [until 循环条件]
循环体
[exit do]
循环体
Loop
2、结尾判断循环条件
Do
循环体
[exit do]
循环体
Loop [until 循环条件]
直到循环条件为真时退出循环,这是do until与do while的区别。