为什么单字母UDF名称不能使用C或R?

Thu*_*ame 2 excel vba excel-vba excel-formula user-defined-functions excel-r1c1-notation

我可以编写以下有效的VBA函数:

Public Function C() As Long
  C = 5
End Function

Public Function R() As Long
  R = 6
End Function
Run Code Online (Sandbox Code Playgroud)

但我不能在Excel公式中使用它们,也不能使用VBA项目或模块名称对它们进行限定.

FWIW,Function N并且Function T是有效的太多,但他们对阵的内置功能.

认为 C并且R必须是Excel公式中的保留名称,但我不明白为什么.任何使用C/ R作为函数调用都可以作为函数调用进行解析,因为它们会紧跟一个a (,而任何使用C/ R作为R1C1表示法都不会立即跟随a (.

如果我使用项目和/或模块的名称限定函数调用,我可以调用函数:

=VBAProject.C()
5

=Module1.C()
5

=VBAProject.Module1.C()
5
Run Code Online (Sandbox Code Playgroud)

Joh*_*man 6

Microsoft文档:

提示:您不能将大写和小写字符"C","c","R"或"r"用作定义的名称,因为它们都用作选择当前所选单元格的行或列的简写当您在名称或转到文本框中输入它们时.

我在定义命名范围时意识到了这个限制.显然,它也扩展到命名UDF(这是有道理的).