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


    论坛链接:club.excelhome.net

    培训中心链接:t.excelhome.net

    Excel Home VBA中级班(11207班)小结

    第四课时自定义函数

    讲师:ggsmart

    助教:swabeleroy

    学员:xixi2011

    本节大纲:

    • 什么是自定义函数
    • 为什么要编写自定义函数
    • 如何编写自定义函数

    第一章 中级班之终体会

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

    第二章 自定义函数

    1. 什么是自定义函数

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

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

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

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

    1. 为什么要编写自定义函数

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

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

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

    1. 如何编写自定义函数

    1、新插入一个标准模块

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

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

    2、插入一空的Function过程

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

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

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

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

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

    1. Function过程语法解析

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

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

        [语句块]

        [函数名=过程结果]

        [Exit Function]

        [语句块]

        [函数名=过程结果]

    End Function

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

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

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

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

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

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

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

    1. 怎样保存自己编写的函数

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

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

    2、加载这个加宏.

    1. 自定义函数举例

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

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

    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能够用到的东西,都用了一个遍,可谓深也。真的是无比充实的一个月。也觉得有点小累,等学好一课,确实应该休息一下了。

  • 相关阅读:
    行转列
    multipath 安装配置
    网卡绑定
    numa对MySQL多实例性能影响
    Fatal NI connect error 12170
    REVOKE DBA权限要小心
    Oracle 数据库整理表碎片
    listagg 函数
    10046 事件补充
    tkprof 解释
  • 原文地址:https://www.cnblogs.com/pengjia89/p/2714618.html
Copyright © 2020-2023  润新知