为何用Apps Script无法向Google Sheet单元格写入内容?
问题原因
你用的是单元格自定义函数(直接在D1里调用=notWorkingFunction()那种),Google Apps Script对这类函数有硬性限制:只能返回计算结果到调用它的单元格,绝对不允许修改其他单元格的内容——哪怕你有编辑权限也不行,这就是报错的核心原因。
解决方法
改用onEdit简单触发器,它会在表格发生编辑操作(比如点击复选框)时自动触发,而且支持修改单元格内容,代码如下:
function onEdit(e) { // 定位触发编辑的单元格 var editedCell = e.range; // 只在A2单元格被编辑时执行操作 if (editedCell.getRow() === 2 && editedCell.getColumn() === 1) { var targetSheet = editedCell.getSheet(); // 给A1单元格写入"123" targetSheet.getRange("A1").setValue("123"); } }
操作步骤
- 把原来的
notWorkingFunction替换成上面的代码 - 不需要在任何单元格里调用这个函数,保存脚本即可
- 第一次使用前,在脚本编辑器里手动运行一次
onEdit(会弹出授权提示,按指引完成授权) - 现在点击A2的复选框,A1就会自动写入"123"了
内容的提问来源于stack exchange,提问作者R. Barbus
相关产品推荐
相关产品推荐

