gpt4 book ai didi

vba - 是否可以在 VBA 中编写名称中包含句点的 UDF?

转载 作者:行者123 更新时间:2023-12-02 10:49:34 26 4
gpt4 key购买 nike

Excel 2010 附带的一些函数的名称中包含句点。例如 STDEV.SPERCENTILE.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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com