过程(Sub和Function)
过程(procedure):
VBA过程就是完成某个给定任务的代码的有序组合。就类似于一个有目的性的行为,一个完整的行为就是一个过程。注意“有序”二字。
VBA过程分为Subroutine(子程序)过程和Function(函数)过程,关键字为Sub和Function,都可以获取参数、执行一系列语句、以及癌变其参数值的独立过程。Sub较Function不同之处,是带返回值的Sub过程不能用于表达式。(什么意思,是指Sub过程不能像代码那样写在语句里么,还是指不能直接调用Sub过程来调用他的返回值?)
Sub过程:
已经接触这么多了,就不多说。几个点:
1、Sub过程的存放位置:模块。同时Excel中的任一对象也可以保存Sub过程,比如双击某一工作表进行过程编写。只是建议都保存在模块里,方便查看等操作。
2、Sub过程的声明。类似声明变量,Sub过程也有作用域之分,private和public,
格式:
[Private |Public] [Static] Sub 过程名
[语句块]
End Sub
2.1、 这里的Static是静态的意思,书上解释说选择后,“运行程序的过程中将保存改过程里声明的本地变量”,有点难懂,意思就是,可在过程中可以声明本地变量,值不会被冲洗掉。多次调佣后依然是初始定义的值。(大概差不多就是这个意思吧,如有人能解释,可以回复:-))
2.2、 如果一个过程被声明为私有过程,则只有本模块内的过程能使用它,而且不会出现在宏的对话框里;
2.3、 如果想把模块中的所有过程都设为私有过程,在第一个过程前写上“Option Private Module”即可
3、如果需要在某个过程中使用另一个过程(注意),可以如下:
a) 直接调用,在过程中输入过程名和过程的参数(没有就不用),参数用逗号隔开
b) 在过程名及参数前用Call关键字,参数用括号括起来,逗号分开
Call 过程名[(参数1),(参数2),…]
c) 利用Application对象的Run方法,格式:
Application.Run 表示过程名的字符串(因此字符串要用双引号?)[,参数1,参数2,…]
Function过程
Function过程即是编写一个函数,即自定义函数。
怎么插入新的Function过程:
编写完成后的函数可以和自带函数同样使用,插入函数里,也有“自定义函数”的选项。
给函数定义变量:就和自带函数里的参数一样,我们定义函数时也可以添加参数:
比如一个3个数的平均数函数:
当然,定义的参数还可以为其他类型,如单元格,区域。难一点的请自行研究。