所有自定义函数在一个电子表格中返回"未知函数",但在其他电子表格中工作

Bob*_*old 8 google-sheets google-apps-script custom-function

我有一些我一直使用的简单自定义函数.我最近遇到了一个我迫切需要使用它们的电子表格,但是当我尝试使用最基本的自定义函数时,我得到了"#NAME".悬停文字"未知功能".

即使删除所有其他代码,并尝试这个简单的功能,似乎不起作用:

function double(d) {
  return 2*d;
}
Run Code Online (Sandbox Code Playgroud)

当我重复的电子表格,随之而来的代码DOES工作.

一些注意事项:

  1. 这是Google Apps for Enterprise帐户.

  2. 我原本不是这个电子表格的所有者,但后来成为了所有者,认为这可能是原因.

  3. 该电子表格最初具有受保护的区域,这些区域已被删除,认为这可能是原因.

这个电子表格与数百人共享,所以我真的想找到根本原因并修复它.

有什么想法吗?

小智 9

我无法解释确切的原因,但这里有一个解决方案:

  1. 复制单元格中写入的表达式
  2. 删除单元格内容
  3. 在单元格中重新输入表达式!


小智 6

如果您已经作为插件发布,那么您需要按照以下步骤重新激活复制工作表的插件:

  • 单击菜单附加组件/您的附加名称/帮助/在商店中查看,
  • 单击“管理”,然后在下拉菜单中取消选中,然后再次选中“在本文档中使用”,以便将插件加载到当前工作表。


Hex*_*ugs 5

对于OP来说太晚了,但以防万一这对其他人有帮助:我遇到了类似的问题,我的电子表格突然停止识别已经工作了几个月的自定义函数。最近没有进行任何代码更改,电子表格自上次运行以来甚至没有经过编辑。当我访问Tools > Script editor它时,它仍然显示带有自定义函数的代码。

重新加载页面并关闭并重新打开并没有解决问题。我添加了一个简单的无参数包装函数来使用一些适当的参数调用自定义函数。

然后,我在调试器中运行此包装函数,并在原始自定义函数中设置断点。当它出现时,我切换回电子表格,它可以神奇地再次看到自定义函数。


Aur*_*ann 1

当您在工作表上有自定义函数时 - 它们是BOUND针对该工作表的。因此,当您复制自身时,它确实可以工作sheet,但它不会自动成为全局或域范围的自定义函数。

在其他地方使用它而不实际将其作为附加组件发布的唯一方法是转到工具菜单,单击脚本编辑器,然后从绑定到它所使用的工作表的脚本中实际复制代码,然后将其粘贴到您要在其中使用它的工作表的脚本编辑器。