1 自定义函数的代码存放位置
一般存放在模块中。
2 自定义函数代码的格式
'函数功能:
'在第一参数“区域”所代表的列中查找第二参数“查找值”的值,然后根据第三参数“列”的值确定返回值所在列的值
'如果有找到多个值,那么由第四参数决定返回第几个值
'忽略第三参数时表示默认值是为2,即返回“区域”右边一列的值
'忽略第四参数时表示默认值1,即返回第一个值
'使用函数可参考以下公式:
'=look(E$2,B$1:C$12,2,ROW(A1))
'确定函数Look,类型为String。包括四个参数,前两个为必选参数,后两个为可选参数
Function look(查找值 As String, 区域 As Range, Optional 列 As Integer = 2, Optional 索引号 As Integer = 1) As String
Dim i As Long, cell As Range, Str As String
With 区域.Columns(1) '引用区域的第一列
'如果引用区域第一个单元格等于查找的对象,那么将该单元格赋予变量Cell。否则使用Find方法查找,将找到的单元格赋予变量Cell
If .Cells(1) = 查找值 Then Set cell = .Cells(1) Else Set cell = .Find(查找值, LookIn:=xlValues, lookat:=xlWhole)
If Not cell Is Nothing Then '如果找到
Str = cell.Address '记录单元格地址
Do '通过循环语句继续查找
i = i + 1 '累加变量,表示符合条件的个数
'如果变量等于最后一个参数,那么将查找到的单元格右边的值赋予Look函数
If i = 索引号 Then look = cell.Offset(0, 列 - 1): Exit Function
Set cell = 区域.Find(查找值, cell, , xlWhole) '查找下一个
'如果找到的目标单元格地址不等于第一次找到的单元格的地址就继续查找
Loop While cell.Address <> Str
Else
look = "" '如果找不到则直接返回空白
End If
End With
End Function
3 添加自定义函数的说明
开发工具→宏→宏名:look→选项→说明:输入说明内容。
4 为自定义函数指定类别
在打开的“插入函数”对话框的“函数分类”列表中,函数的类别包括全部、财务、日期与时间等分类,而创建的自定义函数会自动分配到“
用户定义”类别中。
也可以把自定义函数添加到特定的类别中,运行如下的一个过程即可:
Sub 指定函数类别()
A "look", Category:=5
End Sub
函数类别编号如下所示:
0全部
1财务
2 日期和时间
3 数学和三角
4 统计
5 查找和引用
6 数据库
7 文本
8 逻辑
9 信息
5 自定义函数的使用
5.1 被其它VBA程序调用
5.2 在工作表公式中使用
6 自定义函数的公用
自定义函数一般情况下只能在含有函数代码的工作簿内使用。如果需要让该自定义函数在所有打开的Excel工作簿中使用,需要保存为加载宏文件并进行加载。
6.1 保存为加载宏文件:包含自定义函数的文件→另存为→类型:加载宏xla。
6.2 添加加载宏:office按钮→Excel选项→加载项→转到→勾选:加载宏文件名→确定。