#NAME与模块和功能相同的名称

qua*_*ant 5 excel vba excel-vba excel-2016

我创建了一个foo在我的电子表格中调用的模块,然后我添加了以下内容:

Function foo() As Variant
    foo = 5
End Function
Run Code Online (Sandbox Code Playgroud)

当我尝试在Excel中运行该函数时,通过键入=foo()单元格,我得到了#NAME.当我#NAME通过点击旁边的小图标来查看应该是什么意思,然后help on this error我得到这个:

在此输入图像描述

嗯,不完全是这样,但它一样有用.

最终我发现将模块名称更改为其他内容foo似乎可以修复它.我偶然发现了一个错误或功能吗?这种行为记录在哪里?

Axe*_*ter 6

由于可能有多个模块并且所有模块都可以具有公共功能,因此也可能存在多个具有相同名称但在不同模块中的公共功能.这就是为什么你可以调用一个UDF=foo.foo().这是在名为"foo"的模块中调用名为"foo"的函数.=foo()如果有一个名为"foo"的模块因为foo首先被评估为模块名称,那么这就是失败的原因.