分享

Excel中的自定义函数(自定义函数的基础内容)

 王意pu3eupsbkg 2020-04-04

各位朋友,你们好。

最近和网友沟通交流Excel问题,好些问题都没法直接实现,因此用了很多自定义函数,也给头条里的朋友写过几个自定义函数(比如颜色计算的函数、提取不重复内容的函数、汉字转拼音的函数……)。

在办公过程中,总需要把复杂的事情简单解决,于是用到了VBA代码。用VBA解决一些手工办起来繁琐重复的事情,又快又准又好。是便捷高效。

今天就和你们分享下Excel的自定义函数。详细内容如下:

1、什么是自定义函数;

2、自定义函数怎么使用;

3、怎样让自定义函数可以嵌套内置函数;

4、怎样设置客可忽略的函数参数;

5、私有与公有属性自定义函数的区别;

6、自定义函数放在模块和工作表中的区别;

一、什么是自定义函数

自定义函数:这也是一种函数,用户根据自己的需求,为完成特定的功能而自己编写的函数代码。有别于Excel自带的函数,所以叫做自定义函数。Excel自带的函数叫做内置函数。

自定义函数的代码结构

Function 函数名称(函数参数)

实现函数功能的代码

End Function

自定义函数的好处:

1、将复杂的问题简单化,碰到相同的,或类似的问题,修改参数就OK了;

2、可以重复使用,不用每用一次都写大段的代码,直接一句函数和参数就可以了;

3、需要修改时,只修改函数内的代码即可,不用再每一个使用的地方都修改;

4、自定义函数可以在工作表中像自带公式一样使用,也可以在窗体过程中调用。

二、自定义函数怎么使用

自定义函数的代码,一般放在VBE编辑器的【模块】中。在模块中设置好代码后,就可以在工作表中直接使用,就像使用Excel内置函数一样(效果见下图)。

Excel中的自定义函数(自定义函数的基础内容)

自定义函数的使用

三、怎样让自定义函数可以嵌套内置函数

有些时候,我们需要将像使用内置函数一样,进行一些函数的嵌套计算,如何才能在自定义函数中实现与内置函数的嵌套使用呢?我们先看下图:

Excel中的自定义函数(自定义函数的基础内容)

内置函数嵌套

如动图演示中所示:

1、当函数的第一个参数申明为Range型时,用VLOOKUP函数提取数据后进行字符串提取,会显示错误值。这是由于VLOOKUP函数的结果,是一个具体的值,其类型不是Range,所以结果会出错;

2、让我把函数第一个参数的类型修改为Variant型时,就可以嵌套计算;

3、当我把函数的第一个参数变量类型删除时,也可以正常计算。

4、这里的Variant,是什么意思呢?Variant就是可变的数据类型,可以存放任何数据(不设置变量类型,则默认就是Variant,第三种演示结果);

5、当函数参数类型为Range时,可以与内置函数的OFFSET、INDEX、INDIRECT函数嵌套,因为这几个函数时引用函数,返回的内容是单元格,和Range类型是一样的。

扩展:既然Variant类型是万能的,在实际使用中,在申明变量时,可否就不用申明变量类型呢?

(先透露下,这个话题是我下篇文章的内容,这里只做简单介绍)

解答:在有速度要求和空间限制的情况下不要用variant.,因为variant类型数据占用字符多,所以一般人很少用。.vba默认未定义的数据类型是variant. 有这个默认我就懒得定义数据类型直接用变量这样写代码省时间,但是代码运行会慢,如果你电脑配置足够好,那就不用考虑节省空间的问题。

四、怎样设置可以忽略的函数参数

要设置自定义函数可忽略的参数,可以在参数前面添加【Optional】,这里的Optional就是设置可选参数。写法如下:

Function 函数名称(参数1,Optional 参数2)

实现函数功能的代码

End Function

1、可选参数效果1:

Excel中的自定义函数(自定义函数的基础内容)

在效果1中,我们设置函数的第二参数为可选参数,不写第二参数,内容就直接合并;设置了第二参数,内容就用连接符全部连接起来。

2、可选参数效果2:

Excel中的自定义函数(自定义函数的基础内容)

在效果2中,我们设置函数的第二参数默认值,不写第二参数,内容就用默认连接符合并;设置了第二参数,内容就用设置的连接符合并起来。

五、自定义私有与公有函数

Private:定义私有属性,只能在函数所在的模块中使用;

Public:定义公有属性,整个程序都能使用(若未注明Private,则默认是Public)。

注意::

1、以上概念,对SUB过程也是一样的效果;

2、只要自定义函数的代码在模块中,无论是私有还是公有,都不影响在工作表中的使用;

3、所以,这里的私有和公有,仅在于用VBA代码调用函数上的差异。

下面我用一个示例展示下:

Excel中的自定义函数(自定义函数的基础内容)

图中展示了三个效果:

1、将函数定义为私有函数时,在工作表中可以正常使用;

2、将函数定义为私有函数时,在另一个模块中就无法调用;

3、将函数的属性修改为公有时,在另一个模块中就可以正常使用了。

六、自定义函数放在模块和工作表中的区别

都是在VBE编辑器中,将代码放在模块中,和把代码放在工作表代码中,有什么区别呢?看图:

Excel中的自定义函数(自定义函数的基础内容)

上图演示了两个效果:

1、当自定义函数代码在模块中时,在工作表中使用正常;

2、当把自定义函数代码放到工作表代码区域中时,在工作表中失效。

所以,我们要使用自定义函数,就需要将自定义函数的代码放在模块中。

今天,关于自定义函数的基础内容,包含了函数代码的写法、使用,怎么样可以让自定义函数嵌套内置函数,怎么样设置自定义函数的可选参数、怎么样设置自定义函数的参数默认值等。希望能对各位朋友有所帮助。

我是上班下班,因为爱好办公软件、喜欢分享。所以来到这里将我的学习心得和踩过的一些坑,和大家聊聊,希望大家学习我成功的经验,避开我踩过的坑。我和你们一起进步。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多