成功运行后,Google Sheets 自定义函数出现“未知函数”错误
在 Google Sheet 单元格中,通过
=sheetName()
调用自定义函数来运行以下脚本(将返回当前工作表名称):
function sheetName() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}
第一次编辑(在单元格中插入代码)时,该函数正常工作,但由于工作表已重命名,因此该函数将无法工作,因为单元格(调用自定义函数)内容未更新。再次编辑单元格将显示错误“未知函数”:
此时,在“有问题的”单元格中进行一些编辑,将正确再次运行自定义函数……
知道为什么该函数仅在编辑单元格内容时才有效,而在重命名工作表“选项卡”时不会运行吗?
Google 表格经过优化,因此重新计算尽可能高效。实现此目的的主要方法之一是查看函数的参数,然后仅重新计算具有已更改依赖关系的单元格。
这通常不会造成问题,但对于没有参数的函数,您会发现该函数运行一次后就永远不会再运行。令人惊讶的是,即使您关闭并再次打开表格,原始结果仍会保留。
一种不成熟的解决方案是放入一个引用另一个单元格的虚拟参数。
=sheetName(A1)
如果您想重新计算,只需更改 A1 的内容,它将强制重新计算您的函数。
我遇到了完全相同的错误,因为函数确实有参数。根据文档,我打开了 Extensions/Apps Script,并编写了一个名为 myFunction 的函数,该函数接受一个参数并显示该参数。我添加了调用 myFunction(55) 的测试代码,并在 console.logs 中记录结果。此操作运行正常,没有错误。然后我保存了项目,根据文档,我现在应该能够使用 myFunction。因此,我在单元格中输入以下内容,以使用单元格 D2 的值作为参数来调用 myFunction:
=myFunction(D2)
单元格显示 #NAME,上下文帮助显示“myFunction”是一个未知函数。