Excel VBA入门之函数

如果我们想计算某数的算术平方根,并不需要自己写代码实现,Excel已经为我们写好了代码,并将这些代码封装起来,只留了个名字,并且在名字的后面用括弧告诉我们:把你要计算的数据放进去!

所以,在Excel工作表中我们在sqrt函数后的括弧中填入数据即可得到平方根的值:

VBA中则用sqr函数:

这两个内置函数,其原理和模式完全相同!从这里我们也可初步认识到函数的表现形式仅比变量多了个可以传值的括弧!

VBA中,我们可以用三种方法“制造”函数,这三种方式由简到繁,也许第三种才能算是函数!

方法一:Function+函数名();特点:不接收变量,无返回值。

我们可以使用VBA自带的单元格监控过程来调用自定义的f1函数(点击任意单元格后结果输出10000)

方法二:Function+函数名(参数 as 变量类型);特点:接收变量,无返回值。

同样使用单元格监控过程调用f2,不同的是此次需带参数,我们传入20(点击任意单元格后结果输出2000)

方法一和方法二所定义的函数本质相同,仅单纯执行一些列在函数体内的代码,无返回值,故其 “function”关键字均可换为“sub”使函数变成过程,这时候你可以认为“sub”只是“function”的别名而已。被调用时则使用“Call”或直接写函数名即可。

方法三:Function+函数名(参数 as 变量类型) as 变量类型;特点:接收变量,有返回值(返回值类型为括弧外边最后as所带的变量类型)。

返回值才是函数的精髓,也是函数与过程的本质区别!sub过程是无法提供返回值的!

方法三定义的函数才是真正的函数,由于有返回值,你完全可以将其当作普通变量使用,非常方便!我们同样用单元格监控过程调用两个求面积的函数:

此两个函数的使用方式已经同文章开始的sqrt或sqr完全相同了:括弧中放入要加工的量再直接等号接收函数结果即可!

给方法三画个流程示意图,好让你更容易理解:

最后,简单总结下:

1. 无返回值的函数Function其实就是过程Sub,像极了你那位沉默寡言的下属----埋头苦干从不向你汇报结果;

2. 有返回值的函数其实就是变量,只不过这个变量的值是由你给的参数算出来的而已。(这个“下属”则好很多,你传达命令,他回馈结果!)

举报
评论 0