Public Function SelectFrom8(All As Range, i As Integer, j As Integer)
SelectFrom8 = All.Cells(i, j).Value
End Function
两个问题:
函数的返回值不要指定As Range
用All.Cells(i,j).Value来返回指定单元格的值
随手写了一个,试下行不?
Public Function GetCellRef(ByVal Target As Range, _
ByVal Row As Long, _
ByVal Column As Integer) As Range
On Error Resume Next
If Not (Target Is Nothing) Then
If (Row > 0) And (Column > 0) Then
Set GetCellRef = Target.Cells(Row, Column)
End If
End If
End Function
调用:
Set rngTemp = GetCellRef(ActiveSheet.UsedRange, 1, 1)
如何编写自定义函数
①新插入一个标准模块;
②插入一个空的Function过程;
③写入相应的代码。
注意:最后一定要将结果返回给过程名。
扩展:什么是自定义函数
自定义函数就是用户自己编写的函数。在VBA中,自定义函数就是一个Function过程。在vba 系统中,系统也提供了相当多的vba 系统函数,如instr,cstr,val 等系统函数。
语法结构,同Sub类似。
[Public]、[Private]、[Static] Function 函数名([参数])[As数据类型]
[语句块]
[函数名=过程结果]
[Exit Function]
语句块
[函数名=过程结果]
End Function
公有与私有自定义函数的区别:同sub相似,私有的只能在当前模块中过程中调用,而且在插入函数中不可见此函数名。