vba - #NAME 模块和函数同名

标签 vba excel excel-2016

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

Function foo() As Variant
    foo = 5
End Function

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

enter image description here

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

最终我发现将模块名称更改为 foo 以外的名称似乎可以解决此问题。我是否偶然发现了错误或功能?此行为记录在哪里?

最佳答案

由于多个模块是可能的,并且所有模块都可以具有公共(public)函数,因此也可能存在多个同名但位于不同模块中的公共(public)函数。这就是为什么您可以使用 =foo.foo() 调用 UDF。这是调用名为“foo”的模块中名为“foo”的函数。这就是为什么如果存在名为“foo”的模块,=foo() 将会失败,因为 foo 首先被评估为模块名称。

关于vba - #NAME 模块和函数同名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663333/

相关文章:

excel - Excel文件中表格的设置范围

vba - 另存为 xls 工作簿时删除所有宏/vba

excel - 在 excel 或 vba 中查找值

excel - 如何在 VBA for Excel 中引用复选框

excel - 将多行文本单元格从 Word 表复制到 Excel 单元格

loops - 创建循环以打开和导出报告

vba - VBA 可以预测第 n 行并复制参数吗?

vba - 如何仅允许特定用户取消隐藏工作表

excel - 为 Excel VBA 中的单元格赋值会导致 VBA 崩溃且没有消息

vba - 为什么我的表格还在内存中