我在Excel中有一个用户定义的函数,我在多个工作表中运行。我正在尝试使用Cells(i, j)
在我的函数调用的表格中按行和列来提取单元格的值。相反,当我点击“立即计算”按钮时,Cells(i, j)
会拉出活动工作表中的单元格[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
答案 0 :(得分:1)
您需要使用Application.Caller。
这将返回函数输入的工作表的单元格A1中的值:
Public Function DisplayCaller() As String
DisplayCaller = Application.Caller.Parent.Cells(1, 1)
End Function
这将返回呼叫表的名称:
Public Function DisplayCaller() As String
DisplayCaller = Application.Caller.Parent.Name
End Function