Excel VBA 用户定义的函数:在 Sheet 函数中调用了获取单元格

Excel VBA User-Defined Function: Get Cell in Sheet Function was Called In

我在 Excel 中有一个用户定义的函数,我在多个 sheet 中 运行。我正在尝试使用 Cells(i, j) 在调用我的函数 的 sheet 中按行和列 提取单元格的值。相反,当我点击 'Calculate Now' 按钮时,Cells(i, j)active sheet 中提取单元格 [i,j] 的值,并自动计算不起作用。

我做错了什么?

完整功能如下,不知道是否需要回答我的问题。

Option Explicit
Option Base 1
Option Compare Text

Function recordString(ByVal width As Integer, ByVal height As Integer, ByVal firstCell As Range) As String
    Application.Volatile

    Dim tempString As String
    tempString = ""
    Dim i As Integer
    Dim j As Integer
    For i = firstCell.Row To firstCell.Row + height - 1
        For j = firstCell.Column To firstCell.Column + width - 1
            If IsEmpty(Cells(i, j)) Then
                tempString = tempString & "0"
            Else
                tempString = tempString & "1"
            End If
        Next j
    Next i
    recordString = tempString
End Function

您需要使用Application.Caller。

这将return sheet 函数的单元格 A1 中的值输入到:

Public Function DisplayCaller() As String

    DisplayCaller = Application.Caller.Parent.Cells(1, 1)

End Function

这将return呼叫者的名字sheet:

Public Function DisplayCaller() As String

    DisplayCaller = Application.Caller.Parent.Name

End Function

更多信息:
http://www.cpearson.com/excel/sheetref.htm