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 Function
3.案例:统计指定颜色的单元格数量
需求:统计出下图中,黄色单元格的数量
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 rng
End 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 rng
End Function
5.设置易失性
定义:带有"易失性"属性的函数,在工作表重算时,函数也会跟着重新计算
Public Function fun()
Application.Volatile True '设置易失性
fun = Int(Rnd() * 10) +1 'Rnd()等同于工作表里的Rand()函数
End Function