我在电子表格中创建了一个名为 foo
的模块,然后向其中添加了以下内容:
Function foo() As Variant
foo = 5
End Function
当我尝试在 Excel 中运行该函数时,通过在单元格中键入 =foo()
,我得到 #NAME
。当我通过单击旁边的小图标查看 #NAME
的含义,然后有关此错误的帮助
时,我得到以下信息:
嗯,不完全是这样,但它也同样有用。
最终我发现将模块名称更改为 foo
以外的名称似乎可以解决此问题。我是否偶然发现了错误或功能?此行为记录在哪里?
最佳答案
由于多个模块是可能的,并且所有模块都可以具有公共(public)函数,因此也可能存在多个同名但位于不同模块中的公共(public)函数。这就是为什么您可以使用 =foo.foo()
调用 UDF
。这是调用名为“foo”的模块中名为“foo”的函数。这就是为什么如果存在名为“foo”的模块,=foo()
将会失败,因为 foo
首先被评估为模块名称。
关于vba - #NAME 模块和函数同名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663333/