Excel 2010 附带的一些函数的名称中包含句点。例如 STDEV.S
和 PERCENTILE.EXC
是否可以使用 VBA 为我自己的函数指定一个名称,例如 PERCENTILE.CUSTOM
?
例如,我想使用公式 =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 pretty-print 将其变成了无法解析的困惑:
Enum Foo : Bar = 5 : End Enum
[.B!a r"] = 6
End Enum
关于vba - 是否可以在 VBA 中编写名称中包含句点的 UDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16041671/