第一份Google Sheet的onEdit函数无法访问第二份Google Sheet的问题
问题原因
简单触发器(比如默认的onEdit)存在权限限制:当它被自动触发时,只能访问当前打开的电子表格,没有权限访问其他独立的Google文件(比如你的第二份Sheet)。而手动运行函数时,是用你的账号权限执行,所以能正常操作第二份表格。
解决方案
改用可安装触发器就能解决这个问题,具体步骤如下:
- 打开第一份Sheet的Apps Script编辑器
- 把原来的
onEdit函数改名(比如改成updateSecondSheet),避免和默认触发器冲突,代码可保留原有逻辑:
function updateSecondSheet() { const secondSheet = SpreadsheetApp.openById('1IpAq_xy1LWXYu8CLMsxUtXHwTj-dhAc_zBB5HzWz00M'); secondSheet.getActiveSheet().getRange('A1').setValue("first sheet was edited"); }
- 创建可安装触发器:
- 点击编辑器左侧的「触发器」图标(⏱️样式)
- 点击「添加触发器」按钮
- 按以下参数设置:
- 选择函数:
updateSecondSheet - 部署类型:选择「Head」
- 事件源:选择「从电子表格」
- 事件类型:选择「编辑时」
- 选择函数:
- 点击保存,按照提示完成账号授权操作
注意事项
- 确保你的Google账号拥有第二份Sheet的编辑权限,否则即使是可安装触发器也无法修改内容
- 可安装触发器会记录触发历史,后续如果出现问题,可以在触发器页面查看运行日志排查
内容的提问来源于stack exchange,提问作者Prateek Chahar
相关产品推荐
相关产品推荐

