我有一个简单的电子表格绑定脚本,如下所示
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
我搜索过类似的问题,但当用户想要从库中调用函数但不在绑定脚本中时,会遇到类似的问题。
我无法弄清楚为什么我找不到这个简单函数的错误。
谢谢
答案 0 :(得分:1)
您的代码是正确的,并且在新工作表中正常工作。在极少数情况下,我已经看到了与我自己的代码类似的行为,解决方案是要么等待一段时间,要么将代码复制到新工作表中并从那里开始工作。
根据我的经验,当我将一个全新的脚本复制并粘贴到现有脚本的顶部时,会出现这个问题,但我已经看到它完全没有明确原因。
我对此问题的原因的猜测是,有时脚本和工作表会以某种方式失去同步。由于Google的基础架构广泛分布在许多服务器和数据中心,因此有时候正在执行的代码存储的位置与您在编辑器中看到的代码不同。
为了强调这一点,我过去3年一直在每天的工作中使用Google Apps中的Apps Script,而且我发现这种情况发生的次数不到10次。
答案 1 :(得分:1)
刚碰到这个,因为我也有一个电子表格绑定脚本,在正常工作了好几天之后,它突然冒出同样的错误。
为了解决这个问题,我重命名了将错误抛给其他东西的“函数”,例如“function1”,保存它并以新名称工作。
之后我更改了将函数的名称从“function1”更改回“function”,再次点击“保存”按钮,然后该脚本再次开始工作。