我怀疑答案是“不可能”——但是询问这个优秀的社区总没有坏处!
我有一个 Excel 2013 UDF(用户定义函数),它对于某个工作表来说是唯一的。
目前,我将此 UDF 放在包含工作簿的“模块”中。但我想做的是将 UDF 代码放置在“工作表对象”中,这样它就是only可用于该特定工作表。
我当然试过了,但是不可见,所以我自然得到一个#NAME?错误。我尝试在 Function 前面加上 Public (无论如何都会击败该对象),但无济于事。
有谁知道具体的技巧吗?
预先感谢,尼克。
根据函数的要求,您可以有一个仅在预期工作表上返回正确答案的子句。
假设您的函数采用一个范围作为输入,即
Function CheckSheet(r As Range)
If r.Parent.Name = "Intended Sheet Name" Then
CheckSheet = "The correct value!"
Else
CheckSheet = CVErr(xlErrNA)
EndIf
End Function
EDIT:
如果作为参数的范围位于预期的工作表上,则以前的版本仍然可以在另一张工作表上使用。可以修改为:
Function CheckSheet()
If Application.Caller.Parent.Name = "Intended Sheet Name" Then
CheckSheet = "The correct value!"
Else
CheckSheet = CVErr(xlErrNA)
EndIf
End Function
Where Application.Caller
返回包含该函数的单元格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)