Excel Home VBA中级班(11207班)小结 第四课时 自定义函数

论坛链接:club.excelhome.net培训中心链接:t.excelhome.net

Excel Home VBA中级班(11207班)小结第四课时自定义函数

讲师:ggsmart

助教:swabe、leroy

学员:xixi2011

本节大纲:

什么是自定义函数为什么要编写自定义函数如何编写自定义函数第一章 中级班之终体会

转眼班就要结束了,在小结中学习,在学习中小结,一下都是我信奉的真理,今天又好好研读了一下正则表达式的一切。写完了正则的小结,感觉真的很不错。明天继续奋斗我的字典小结了。整个中级班的课程下来,中间两节相对课外题目来说,都比较简单。开头的一些基本知识点的介绍,确实,如果不细纠很容易搞错。结尾的这个自定义函数,也是在学习的过程中,比较容易碰到的,需要重点学习的内容。

第二章 自定义函数

    什么是自定义函数

要想理解什么是自定义函数,先得理清楚函数的概念。什么是函数呢?函数就是预定的一个计算公式,可以快速地完成一个特定的计算。如sum啊,if这些。

有些函数只有返回值,没有传参,比如date,有些是既有参数,又有返回值,比如说sum。这些都是各种各样的函数。

而自定义函数是什么呢?就是用户自己编写的,类似的函数。像sum函数,我们也可以自己编写,像date函数,也可以。

一个自定义函数就是一个function过程,编写一个function过程就等于编写了一个自定义函数。

    为什么要编写自定义函数

人们的需求,总是在不断地扩充当中,不可能永远不变。而有很多问题,现有的情况很难解决,或者无法解决怎么办?我们可以用自定义函数来实现。

自定义参数,自定义返回值,让Excel更加人性化。

人们总在不断地寻求简化工作的方法。而这些方法,就知道自己去创造许多东西。当一个功能你经常使用到的时候,将它弄成自定义函数,以后就可以很方便地重复利用了。

    如何编写自定义函数

1、新插入一个标准模块

方法一:执行”插入”->”模块”菜单命令

方法二:在工程资源管理器中,单击右键,执行:”插入”->”模块”右键菜单命令

2、插入一空的Function过程

方法一:执行”插入”->”函数”菜单命令,通过”添加过程”对话框完成。

方法二:在代码窗口动输入完成。

3、在Function与End Function之间写入相应的代码。

4、将计算结果返回给过程名。

5、如果需要,可以通过宏对话框为自定义函数添加函数说明。

    Function过程语法解析

声明自定义函数的语法如下:

[Public | Private | Friend] [Static] Function 函数名([参数]) [As 数据类型]

[语句块]

[函数名=过程结果]

[Exit Function]

[语句块]

[函数名=过程结果]

End Function

其语法与Sub过程基本一致,唯一区别是要把过程结果返回给函数名。

可以在工作表中使用自定义函数,也可以在过程中调用自定义函数。

自定义函数有自己的作用域,可以给自定义函数设置参数。

另外,谈到函数就不能不说它的”刷新”性能,即在工作表中使用函数时,当其他区域的数据更新时,当前单元格的函数是否重新运算,专业术语称之为”易失性”。

用户定义的函数是否有易失性,可以通过Application的Volatile方法设置。

该方法的作用是无论何时在工作表的任意单元格中进行计算,函数都必须重新进行计算。即工作表刷新时调用函数再运算一次,从而实现数据更新,使公式结果同步。

另外,function过程可带的参数,最多为255个。

    怎样保存自己编写的函数

怎样保存自己编写的函数?让它可以在不同的工作薄里使用,可以在不同的电脑上使用?

1、将自定义的函数保存在加载宏文件中.

2、加载这个加宏.

    自定义函数举例

首先,举一个非常简单的例子。

我们需要获得当前工作簿的名字。这时候,怎么办呢?

Public Function GetWorkbookName()

GetWorkbookName = ThisWorkbook.Name

End Function

这样,在工作簿中调用,GetWorkbookName就可以获得工作簿的名称。

然后再来举一个十分常用的例子,统计单元格颜色。

一般情况下,遇到这个问题,解决方法有两个。

宏表函数

1、宏表函数,需要自定义名称。

Get.Cell(63,Sheet1!A1),类似这样的,获取颜色。不过具体就不说了,网上有一大堆资料。然后获取了颜色号之后,再进行统计

2、自定义函数。

自定义函数也很常用

Function countcolor(Rng As Rang, cel As Range) ‘ 第一个参数是区域,第二个参数是单元格的颜色

Dim Cindex as Integer

Cindex = Cel.Interior.ColorIndex

Dim n As Range

For Each n In Rng

If n.interior.ColorIndex = Cindex then

Countcolor = countcolor+1

End If

Next

End Function

第四章 视频总结

Function过程即自定义函数,根据工作需要可以开发自己专用的函数。

对于函数的运算速度,内部集成的工作表函数,一定快于用户自己定义的函数,在内部函数能够完成的情况下,尽量使用工作表函数;如果工作表函数无法完成,或者需要非常长的数组公式才能完成的情况下,可以开发专用的自定义函数。

自定义函数的用途还是挺多的说。

第五章 对这课的小结

整个课程都已经结束了,回顾整个课程,真的是在VBA的深潭中走了一回。从最开始的数组到数组嵌套,字典,字典数组嵌套,字典嵌套,SQL,正则。一般VBA能够用到的东西,都用了一个遍,可谓深也。真的是无比充实的一个月。也觉得有点小累,等学好一课,确实应该休息一下了。

放下一处烦恼,收获一个惊喜;放下一种偏见,收获一种幸福;

Excel Home VBA中级班(11207班)小结 第四课时 自定义函数

相关文章:

你感兴趣的文章:

标签云: