Excel 2010 附带了一些名称中包含句点的函数。例如STDEV.S
和PERCENTILE.EXC
是否可以为我自己的函数指定一个名称,例如PERCENTILE.CUSTOM
使用 VBA?
例如,我想使用公式引用以下函数=NAME.SUFFIX()
Option Explicit
Function NAMEdotSUFFIX() As Variant
NAMEdotSUFFIX = 42
End Function
Excel 2010 附带了一些名称中包含句点的函数。例如STDEV.S
和PERCENTILE.EXC
是否可以为我自己的函数指定一个名称,例如PERCENTILE.CUSTOM
使用 VBA?
例如,我想使用公式引用以下函数=NAME.SUFFIX()
Option Explicit
Function NAMEdotSUFFIX() As Variant
NAMEdotSUFFIX = 42
End Function
正如@SiddharthRout 已经建议的那样,在声明函数名称时,外部库的限制比 VBA 少,因此外部名称中允许使用句点。
尽管有 MSDN 文档,但可以在 VBA 标识符中使用一些特殊字符,包括 UDF。特殊字符甚至可以是标识符中的第一个/唯一字符。根据 VBA 项目和 VBE 的代码页,特殊字符的可用性会有所不同。
这是一个完全有效的 VBA 函数:
Public Function Foo·Bar()
Foo·Bar = 5
End Function
并且可以在 Excel 公式中使用:
=Foo·Bar()
5
同样,这个函数的gem使用不间断空格作为函数名:
Public Function ()
= 6
End Function
但是,虽然带有 NBSP 的函数是有效的,但遗憾的是,它不能在 Excel 公式中使用。
可以使用:
Public Function ·()
· = 5
End Function
奖金黑客
有人忘记告诉Enum
团队标识符规则。虽然枚举不能在 Excel 公式中使用,但您可以使用除回车或方括号内的方括号之外的任何字符作为枚举名称或成员。
这是完全有效的 VBA:
Enum [Foo : Bar = 5 : End Enum]
[.B!a r"] = 6
End Enum
VBE 漂亮的打印机把它变成了这个无法解析的混乱:
Enum Foo : Bar = 5 : End Enum
[.B!a r"] = 6
End Enum
从 VBA 是不可能的。这篇 MSDN 文章展示了如何在 VBA 中定义函数,特别是这篇文章列出了元素名称的规则。