如何在VBA自定义函数中引用单元格

2024-11-01 13:36:13
推荐回答(3个)
回答1:

Public Function SelectFrom8(All As Range, i As Integer, j As Integer)
  SelectFrom8 = All.Cells(i, j).Value
End Function

两个问题:

  1. 函数的返回值不要指定As Range

  2. 用All.Cells(i,j).Value来返回指定单元格的值

回答2:

随手写了一个,试下行不?

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)

回答3:

  如何编写自定义函数
  ①新插入一个标准模块;
  ②插入一个空的Function过程;
  ③写入相应的代码。
  注意:最后一定要将结果返回给过程名。
  扩展:什么是自定义函数
  自定义函数就是用户自己编写的函数。在VBA中,自定义函数就是一个Function过程。在vba 系统中,系统也提供了相当多的vba 系统函数,如instr,cstr,val 等系统函数。
  
  语法结构,同Sub类似。
  [Public]、[Private]、[Static] Function 函数名([参数])[As数据类型]
  [语句块]
  [函数名=过程结果]
  [Exit Function]
  语句块
  [函数名=过程结果]
  End Function
  公有与私有自定义函数的区别:同sub相似,私有的只能在当前模块中过程中调用,而且在插入函数中不可见此函数名。