【问题标题】:Excel not finding VBA FunctionExcel 找不到 VBA 函数
【发布时间】:2020-07-18 19:56:03
【问题描述】:

我正在尝试创建一个 VBA 函数来调用 Excel 中的单元格,但是当我输入 =MyFunction("a") 时,单元格显示为 #NAME?

在我的 VBA 模块Module1:

Public Function MyFunction(anything As String)
    MyFunction = anything
End Function

在单元格中:

=MyFunction("a")

结果:

#NAME?

我在这里做错了什么?当我开始在单元格中输入=MyFunction 时,Excel 将其列为一个选项,但不显示参数,然后生成此结果。

这是在 2007 年的 .xlsm 文件中。

【问题讨论】:

  • FWIW,它在 2013 .xlsx 文件中对我来说很好用。也许尝试将函数放入一个干净的电子表格中,看看它是否适合你。
  • 好的,我创建了一个新文件,它可以正常工作,所以我的文档一定很奇怪。我会把我的数据复制到那里再试一次。
  • 您可能犯了一个错误,但将函数留在了单元格中,因为它不是易失性的,它不会通过修复函数来“更新”,也许吧?对于您的参数(工具提示),您可以在此处查看建议:stackoverflow.com/questions/4262421/…
  • 我认为当我将文件保存为.xlsm 时,它并没有自动启用文件上的宏。我重新打开了文件,它提示我启用宏

标签: excel vba


【解决方案1】:

您的 UDF 位于正确的位置并且编码正确,并且将被“识别”如果为相关工作簿启用宏

检查您的安全设置。

【讨论】:

  • 我最初将文件创建为.xlsx,并保存为.xlsm 以启用宏。现在我重新打开了它要求我启用宏的文件。谢谢!
  • 我自己犯过同样的错误大约一百万次!
【解决方案2】:

我有一个启用宏的文件,我将宏安全设置为全部启用,我检查了对 VBA 项目对象模型的信任访问,我的工作簿位于受信任的位置,但我仍然无法输入我的函数名称或在“插入函数”对话框中找到它。还有哪些其他安全设置?

这是最近在 Windows 10 Pro 上安装的未经修改的 2016 x64。

我在 ThisWorkbook(代码)中有:

Public Function TestJohn(derp As String) As String
    TestJohn = "test john " & derp
End Function

我在 Sheet2(代码)中有:

Public Function TestJohn2(derp As String) As String
    TestJohn2 = "test john2 " & derp
End Function

它们都不显示为 Sheet2 的可用函数。

【讨论】:

  • 目前还没有,@MichaelZiluck。
  • 我想我找到了问题所在。我们都认为您应该将它放在 ThisWorkbook 或 SheetX 中。您需要做的是在“项目”面板中右键单击 VBAProject,然后选择“插入”>“新建模块”。把你的函数放在那里,它应该可以正常工作!
  • @MichaelZiluck 你拯救了我的一天。这对我来说确实很有魅力
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多