Google Apps 脚本 - 找不到函数

Google Appscript - function could not be found

我有一个简单的电子表格绑定脚本如下

var document = SpreadsheetApp.getActive()

function onOpen() {

  var menuEntries = [];
  menuEntries.push({name:'Archive',functionName:'startArchive'})
  document.addMenu("Custom", menuEntries)
}

function startArchive() {

  Logger.log("Will Start Archive")

}

所有脚本都绑定到电子表格。

当我重新加载电子表格时,我可以看到带有 "Archive" 的自定义对话框下拉菜单。当我单击存档时,我没有调用 "startArchive()" 函数,而是收到错误消息

script function startArchive could not be found

我搜索过类似的问题,但当用户想从库中调用一个函数而不是在绑定脚本中时,他们会遇到这样的问题。

我无法弄清楚为什么这个简单的函数会出现找不到错误。

谢谢

您的代码是正确的并且在新的 sheet 中工作正常。我在极少数情况下看到我自己的代码有类似的行为,解决方案是等待一段时间,或者将代码复制到新的 sheet 并从那里开始工作。

根据我的经验,当我将一个全新的脚本复制并粘贴到现有脚本之上时,这个问题会突然出现,但我发现它的发生根本没有明确的原因。

我猜测这个问题的原因是有时脚本和 Sheet 以某种方式不同步。因为 Google 的基础设施广泛分布在许多服务器和数据中心,所以有时正在执行的代码存储在与您在编辑器中看到的代码不同的地方是有道理的。

只是为了强调这种情况的罕见性,在过去的 3 年里,我每天都在 Google sheet 的工作中使用 Apps Script,而且我已经看到这种情况发生总共不到10次。

只是 运行 进入这个,因为我也有一个电子表格绑定脚本,在正常工作几天后不知从哪里抛出同样的错误。

为了解决它,我将引发错误的 "function" 重命名为其他东西,例如 "function1",保存它并在新名称下工作。

之后,我将给出错误的函数的名称从 "function1" 改回 "function",再次点击保存按钮,瞧瞧,脚本又像往常一样开始工作了。