1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > VBA笔记:自定义函数(Function)

VBA笔记:自定义函数(Function)

时间:2020-09-06 06:37:21

相关推荐

VBA笔记:自定义函数(Function)

1.基础结构

1.1 定义

Function,相当于在VBA里新增一个自定义函数,这个函数可以在工作、VBA代码里直接使用

1.2 规范语句

[Public][Private][Static] Function 函数名 ([参数列表]) [As 数据类型] [语句块] [函数名 = 过程结果] [Exit Function] [语句块] [函数名 = 过程结果]End Function

1.3 使用函数

跟其他excel函数一样,直接使用即可

在VBA过程中,也可以使用Function自定义函数,用法一样

2.案例:随机函数

需求:新建1个函数,可以生成1~10之间的随机整数

Public Function fun() fun = Int(Rnd() * 10) +1 "Rnd()等同于工作表里的Rand()函数End Function3.案例:统计指定颜色的单元格数量

需求:统计出下图中,黄色单元格的数量

image.png

黄色的RGB编码是 (255,255,0),代码过程:

Public Function CountColor() Dim rng As Range For Each rng In Range("A1:D12") If rng.Interior.Color = RGB(255, 255, 0) Then CountColor = CountColor + 1 End If Next rngEnd Function

4.使用参数来指定计算区域

在使用函数的时候,填入区域参数即可 : CountColor(A:V)

Public Function CountColor(arr As Range) Dim rng As Range For Each rng In arr If rng.Interior.Color = RGB(255, 255, 0) Then CountColor = CountColor + 1 End If Next rngEnd Function5.设置易失性

定义:带有"易失性"属性的函数,在工作表重算时,函数也会跟着重新计算

Public Function fun() Application.Volatile True "设置易失性 fun = Int(Rnd() * 10) +1 "Rnd()等同于工作表里的Rand()函数End Function

注意:变更颜色值并不会导致工作表重算,所以上边的CountColor函数是不会自动重算的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。