首页 > 解决方案 > 成功运行后谷歌表格自定义功能错误“未知功能”

问题描述

在 Google 表格单元格中,正在调用自定义函数=sheetName()以运行以下脚本(将返回当前表格名称):

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

在第一次编辑(在单元格中插入代码)时,该函数可以正常工作,但由于工作表被重命名,该函数将无法工作,因为单元格(调用自定义函数)内容没有更新。再次编辑单元格将显示错误“未知函数”:

在此处输入图像描述

此时,在“违规”单元格中进行一些编辑,将再次正确运行自定义功能...

知道为什么该功能仅在编辑单元格内容时才起作用,而在重命名工作表“选项卡”时不会运行?

标签: google-apps-scriptgoogle-sheets

解决方案


Google 表格经过优化,以便尽可能高效地进行重新计算。完成此操作的主要方法之一是查看函数的参数并仅重新计算具有已更改依赖项的单元格。

这通常不会导致问题,但是对于没有参数的函数,您会发现该函数运行一次并且永远不会再次运行。令人惊讶的是,即使您再次关闭并打开工作表,原始结果仍然存在。

一个 hacky 解决方案是在一个虚拟参数中放入一个对另一个单元格的引用。

=sheetName(A1)

如果要重新计算只需更改 A1 的内容,它将强制重新计算您的函数。


推荐阅读