Excel 2010附带了一些名称中包含句点的函数。例如STDEV.S
和PERCENTILE.EXC
是否可以使用VBA为PERCENTILE.CUSTOM
等名称为我自己的函数指定名称?
例如,我想使用公式=NAME.SUFFIX()
Option Explicit
Function NAMEdotSUFFIX() As Variant
NAMEdotSUFFIX = 42
End Function
答案 0 :(得分:3)
正如@SiddharthRout已经建议的那样,外部库在声明函数名时比VBA具有更少的限制,因此外部名称允许使用句点。
尽管有MSDN文档,但 可以在VBA标识符中使用一些特殊字符,包括UDF。特殊字符甚至可以是标识符中的 first / only 字符。根据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
BONUS HACK
有人忘了告诉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
答案 1 :(得分:0)
VBA无法实现。 This MSDN article显示了如何在VBA中定义函数,特别是this article列出了元素名称的规则。