旧Google Sheets按钮失效,如何重新激活关联脚本?
这种情况我之前也碰到过几次,大概率是脚本的绑定关系出了问题,或者脚本被误移/误删了,咱们一步步来排查恢复:
先排查脚本编辑器的所有关联项目
打开你的Google Sheets,点击顶部菜单栏的「工具」>「脚本编辑器」。在脚本编辑器左侧的项目面板里,看看有没有你之前创建的脚本文件(通常是.gs后缀)。如果这里空了,别慌,点击左侧面板顶部的下拉菜单,看看有没有其他关联的项目——有时候脚本会被意外移到其他项目文件夹里,或者你之前可能创建了多个项目。另外,也可以去「我的项目」列表里找找和这个表格同名的旧脚本项目。用版本历史恢复丢失的代码
如果脚本编辑器里能找到项目,但代码没了,那大概率是被误删或修改了。点击脚本编辑器顶部的「文件」>「版本历史」>「查看版本历史」,这里会列出所有保存过的版本。找到你记得有按钮关联代码的那个版本,点击「恢复此版本」,就能把代码找回来。重新授权并绑定脚本
有时候权限过期或变化会导致按钮失效。先在脚本编辑器里找到你要关联的函数(比如handleButtonClick),点击函数名旁边的运行按钮,这时候可能会弹出授权提示,按照步骤完成授权(需要允许脚本访问你的表格数据)。授权完成后,回到表格,右键点击失效的按钮,选择三点菜单里的「assign script」,输入函数的精确名称(注意大小写,不要加括号,比如只输入handleButtonClick),保存后再测试按钮。检查表格复制导致的脚本丢失
如果你是复制了原来的表格来用,容器绑定脚本(和表格绑定的脚本)有时候不会被自动复制。这时候你需要打开原来的表格的脚本编辑器,把代码复制下来,粘贴到当前表格的脚本编辑器里,然后再重新关联按钮。确认函数的全局可访问性
要注意,按钮关联的函数必须是全局函数,不能嵌套在其他函数里面。比如下面这种嵌套的函数就无法被按钮调用:function main() { function handleButtonClick() { // 按钮逻辑 } }你需要把
handleButtonClick移到全局作用域里,才能被按钮正确关联。
内容的提问来源于stack exchange,提问作者Robert Brigida

