EP01. “User Defined Function 自定义函数”
🔒 登录后可标记已读- Excel 内建函数不够用时,可以自己用 VBA 写一个「自定义函数(User Defined Function,简称 UDF)」
- 写好之后就能像内建函数一样在工作表里直接用
- 用「统计范围内偶数总和」当例子示范完整写法
- 前置知识:基本的 For Each 循环和 Mod 运算符
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
建立自定义函数:SUMEVENNUMBERS
- 打开 VBA 编辑器,插入一个新模块
- 声明函数,参数是一个范围(Range):
Function SUMEVENNUMBERS(rng As Range)
Dim cell As Range
For Each cell In rng
If cell.Value Mod 2 = 0 Then
SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value
End If
Next cell
End Function
逻辑说明
For Each cell In rng:逐一检查传进来的范围里每一个单元格cell.Value Mod 2 = 0:用 Mod(取余数)运算符判断这个数字除以 2 余数是不是 0,是就代表这是偶数- 符合条件的值累加进函数本身的返回值
使用方式
在工作表里像用一般函数一样输入 =SUMEVENNUMBERS(A1:A10),就能算出这个范围里所有偶数的总和。
📌 自定义函数只在建立它的这份工作簿里可以使用。
学完你会
- ✅ 用
Function关键字写一个能在工作表里当公式用的自定义函数 - ✅ 用
For Each循环逐格检查传进来的 Range 参数 - ✅ 知道自定义函数只在建立它的那份工作簿里可以用
常见错误
- 忘记自定义函数是「绑定在这份工作簿」的,换一份文件就用不了
- Mod 判断偶数写反条件(写成
<> 0而不是= 0),结果统计到的是奇数而不是偶数 - 函数参数没有声明成 Range 类型,导致传进来的范围无法用 For Each 逐格检查
Sources
Blog / Website: