Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba #具有相同名称的模块和函数的名称_Vba_Excel_Excel 2016 - Fatal编程技术网

Vba #具有相同名称的模块和函数的名称

Vba #具有相同名称的模块和函数的名称,vba,excel,excel-2016,Vba,Excel,Excel 2016,我在电子表格中创建了一个名为foo的模块,然后添加了以下内容: Function foo() As Variant foo = 5 End Function 当我尝试在Excel中运行函数时,通过在单元格中键入=foo(),我得到#NAME。当我点击旁边的小图标,然后点击关于此错误的帮助,查看#NAME的含义时,我得到以下信息: 嗯,不完全是这样,但它也同样有用 最后,我发现将模块名称更改为除foo之外的其他名称似乎可以解决这个问题。我是否偶然发现了一个bug或特性?此行为记录在何处

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

Function foo() As Variant
    foo = 5
End Function
当我尝试在Excel中运行函数时,通过在单元格中键入
=foo()
,我得到
#NAME
。当我点击旁边的小图标,然后点击关于此错误的帮助,查看
#NAME
的含义时,我得到以下信息:

嗯,不完全是这样,但它也同样有用


最后,我发现将模块名称更改为除
foo
之外的其他名称似乎可以解决这个问题。我是否偶然发现了一个bug或特性?此行为记录在何处?

由于多个模块都有可能,并且所有模块都可以具有公共功能,因此也可能存在多个名称相同但位于不同模块中的公共功能。这就是为什么可以使用
=foo.foo()
调用
UDF
。这是在名为“foo”的模块中调用名为“foo”的函数。这就是为什么如果有一个名为“foo”的模块,那么
=foo()
将失败,因为
foo
首先作为模块名进行计算。

您的意思当然是
=foo()