过程(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过程:



vba的function和sub的区别 vba sub和function区别_ViewUI

在插入过程里选择函数即可



编写完成后的函数可以和自带函数同样使用,插入函数里,也有“自定义函数”的选项。

给函数定义变量:就和自带函数里的参数一样,我们定义函数时也可以添加参数:

比如一个3个数的平均数函数:



vba的function和sub的区别 vba sub和function区别_ViewUI_02



vba的function和sub的区别 vba sub和function区别_javascript_03



当然,定义的参数还可以为其他类型,如单元格,区域。难一点的请自行研究。