Excel VBA之第三十二课
上次课我们学习了Sub子过程的全部基础知识,今天我们来了解一下Function子过程,这样我们可以把这两种常见的子过程学习完毕。其实还有一种属性过程(Property过程),它存在于类模块中,这个等我们以后讲到类模块的时候再说。回到今天要说的Function子过程上来,Function子过程就是我们常常被称为的自定义函数,既然是一种函数,那么不管怎样,它肯定会是返回一个结果的,想一想我们平时是怎么样使用工作表函数的。在VBA中创建的Function子过程不仅仅可以在该项目的模块内被调用,而且可以被作为工作表函数应用在工作表公式中,这种功能也是Excel的特色功能之一。
Function子过程的调用格式如下:
[Private][Public][Static] Function 过程名称([参数表])[As 数据类型]
语句块
End Function
通过Sub子过程和Function子过程的定义格式可以看出它们之间有两个区别,这里可回顾一下Sub子过程的定义格式。其一是Sub子过程中的Sub关键字被更换为Function关键字;其二是在Function子过程的首行末尾多了As语句,定义了该函数的返回值类型,如果省略该部分,函数的返回值类型为Variant。
看例子:
我们在模块1里写了一个Function子过程,用于求长方形的面积:
我们知道Sub子过程很好执行,直接点击执行按钮就行了,那么如何使用这个Function子过程呢?
1、作为工作表函数来使用:
2、作为普通子过程来用:
我们可以建立如下的过程:
运行这个Sub过程得到:
在这个例子里面,我们直接在test过程里面调用Function函数过程。
以上就是Funtion子过程的基础知识,正因为它有以上的两种用法,所以有的人也说Funtion子过程包括工作表函数过程和模块函数过程。好好消化一下~