前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >过程(六)Function函数过程

过程(六)Function函数过程

作者头像
无言之月
发布2019-10-13 16:11:09
2K0
发布2019-10-13 16:11:09
举报

通用过程中包括sub子程序过程和Function函数过程,前面介绍了sub过程的定义、调用、参数的传递方式等。Function函数过程与sub过程类似,但也有所不同。本节开始就介绍下Function函数过程。

一、Function函数和Sub过程异同

1、相同点:

1、都是构成VBA程序的基本单位

2、都可以用Public和Private等关键字设置过程的作用区域。

3、都可以接收参数,参数的设置相同。(包括传递方式,可选参数,可变参数等)

前面介绍的传递方式,可选参数,可变参数在Function函数过程中均适用。

2、不同点:

1、Sub过程不能返回一个值,而Function函数可以返回一个值,因此Function函数过程可以像Excel内部函数一样在表达式中使用。

2、Sub过程可以作为宏来调用,而Function函数过程不会出现在调用宏时选择宏的对话框中,要在工作表中调用Function函数,可像使用Excel内部函数一样使用。

3、在vba中,Sub过程可以作为独立的基本语句调用,而Function函数通常作为表达式的一部分。

二、定义Function函数

Function函数过程的创建方法与Sub过程方法类似,在使用Function函数时,一般需要使用一个变量来接收返回值。

创建函数通常都使用直接手工输入,在手工输入时需要了解Function函数过程的结构,其语法格式如下。

[ Private |Public|Friend ] [Static] Function 函数名 [(参数列表) ] [As 返回类型]

语句序列1

函数名=表达式1

Exit Function

语句序列2

函数名=表达式2

End Function

它的语法结构和Sub过程相近,主要有两点不同:1、声明函数名的第一行使用"As 返回类型"定义函数返回值。2、在函数过程内,通过给函数名赋值来返回计算结果。如果函数结构中没有函数名=表达式1的语句,则该函数使用时会返回一个默认值,数值函数返回值为0,字符串函数返回值为空字符串。

通常不使用sub过程来返回值,但在介绍Sub过程中使用传地址方式传递参数时,可以通过变量来得到结果。当时的演示例图如下:

通过传地址方式传递参数,调用jisuan过程,变量b的值改变。下面通过Function函数过程来实现下,更加方便。

在代码中创建Function函数过程 jisuan,jisuan函数过程返回值定义了类型为As integer,函数过程中定义了整型变量i。jisuan的过程只是简单的变量+1后的结果。

新建一个sub过程,定义变量h为integer整型变量,调用函数过程,与调用其他内置函数类似,通过h = jisuan(2)即可,得到计算后的结果为3,赋值给h。

通过两者对比,来理解Function函数过程和sub过程的异同和使用方法。

三、调用Function函数

有两种方法调用Function函数,一种是在工作表的公式中使用,即像普通Excel函数一样使用。另一种是从VBA的另一个过程里调用。

1、在工作表中调用函数

定义的Function函数和系统内置函数一样,可以再Excel工作表中作为公式进行引用。(即和常用的sum函数、if函数、vlookup函数等一样去使用。

下面通过示例介绍,先创建一个名为jisuan的函数过程。

根据定义的语法结构,创建了名为jisuan的函数,函数有一个参数为i是整型变量。然后声明返回值为As integer整型变量。

然后函数过程中表达式要书写成函数名称jisuan=i+1,即提供的变量i加上1之后的值作为返回值。

下一步在excel工作表中,像平常的函数一样去调用创建的jisuan函数。

在公式中输入=jisuan(单元格引用)来计算前面的数字,结果都是+1之后的结果。(参数和返回值都是整型变量。)

这种方式也可以帮助更好的理解函数,理解之后可以针对需求创建复杂的函数。(特别是工作中一些数据的固定处理,就可以使用自定义的函数。)

2、在VBA代码中调用函数

在vba中,function函数过程无法像Sub过程那样按F5来调试运行。运行函数过程,需要从另一个函数过程中来调用该函数。

function函数过程的调用比较简单,就像使用vba内部函数一样来调用function函数过程。只不过内部函数是有vba系统提供的。而function函数是由用户自定义的。

新建一个sub过程,定义变量h为integer整型变量,调用函数过程,与调用其他内置函数类似,通过h = jisuan(2)即可,得到计算后的结果为3,赋值给h,在立即窗口中显示。


今天下雨

本节主要介绍Function函数过程,重点是它和Sub子程序过程时使用时的异同之处。后面会通过示例来具体再介绍Function函数过程的使用,祝大家学习快乐。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档