Google Sheets 编辑C列时自动复制B列值到A列的脚本实现
Google Sheets 编辑触发同步值实现步骤
操作流程
- 打开目标Google表格,点击顶部菜单栏「扩展程序」→「Apps 脚本」,进入脚本编辑页面,清空编辑器里默认的空白
myFunction代码块。 - 将以下代码粘贴到编辑器中:
function onEdit(e) { const activeSheet = e.source.getActiveSheet(); const targetRange = e.range; const editColumn = targetRange.getColumn(); const editRow = targetRange.getRow(); // 触发条件:编辑位置为C列(列序号3)、输入内容非空 // 如果第一行是表头需要跳过,可将判断条件修改为 editColumn === 3 && editRow > 1 && e.value if (editColumn === 3 && e.value) { // 读取对应行B列公式计算生成的结果,写入同行A列 const calculatedValue = activeSheet.getRange(editRow, 2).getValue(); activeSheet.getRange(editRow, 1).setValue(calculatedValue); } // 可选:如果删除C列内容时需要同步清空A列,可放开下面这段注释 // if (editColumn === 3 && !e.value) { // activeSheet.getRange(editRow, 1).clearContent(); // } }
- 点击编辑器顶部的保存按钮,给脚本项目任意命名(比如「B列值同步到A列」)保存即可。首次触发时会弹出Google账号授权提示,按照页面指引完成授权即可正常使用,不需要额外部署或配置触发器。
注意事项
- 该脚本使用Google Sheets原生简单
onEdit触发规则,仅在手动编辑C列单元格时自动运行,公式自动重算、脚本修改单元格内容不会触发该逻辑,匹配当前使用场景。 - 如果存在批量粘贴多行数据到C列的需求,可以把脚本调整为批量读取写入逻辑,减少接口调用提升运行速度。
- 如果需要同步B列的单元格格式到A列,可以将单值写入的逻辑替换为
copyTo方法,指定仅复制内容和格式即可。
内容的提问来源于stack exchange,提问作者Edyphant
相关产品推荐
相关产品推荐

