Google Sheets OnEdit脚本如何写入指定公式的实时计算结果
Google Sheets OnEdit脚本修改方案
你需要实现编辑指定工作表A列单元格时,在同行N列写入触发当下C1+1的静态计算结果,而非固定文本或动态公式,修改时需要先修复原脚本的列偏移bug:原代码中r.offset(0, 14)会将内容写入A列右移14列的O列(第15列),和你需要的第14列N列不符,需将列偏移值调整为13。
修改要点
- 触发编辑事件时,实时读取当前工作表C1单元格的最新数值
- 对读取到的C1值做+1计算,得到触发时刻的固定结果
- 仅当同行目标N列单元格为空时写入内容,避免覆盖已有数据
- 写入的是计算后的静态值,后续C1数值变动不会影响已经写入的内容
修改后可直接运行的代码
function onEdit() { const s = SpreadsheetApp.getActiveSheet(); if (s.getName() == "Current Loads 2020") { const r = s.getActiveCell(); if (r.getColumn() == 1) { // 列偏移改为13,对应A列右移13列到N列(第14列) const nextCell = r.offset(0, 13); if (nextCell.getValue() === '') { // 读取C1实时值计算后写入静态结果 const currentC1Val = s.getRange("C1").getValue(); nextCell.setValue(currentC1Val + 1); } } } }
可选调整
如果你后续需要让写入的内容随C1数值自动更新,而非固定为触发时的计算结果,只需将写入行替换为公式写入逻辑即可:
nextCell.setFormula("=C1+1");
保存脚本后回到工作表,编辑「Current Loads 2020」表的A列单元格,就会在同行空的N列单元格自动写入对应结果。
内容的提问来源于stack exchange,提问作者Kelly Rowe
相关产品推荐
相关产品推荐

