You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets中实现编辑D9时同步C9与D9数据至主表

解决编辑D9时同步C9和D9数据到目标工作表的问题

嘿,我明白你想要的效果啦——现在只要编辑D9,就能把C9和D9的内容同时同步到master inventory工作表里,不用再分别编辑两个单元格触发操作。咱们来调整一下你的代码就行:

修改后的完整代码

function onEdit(e) {
  // 仅当编辑的是D9单元格时执行后续逻辑
  if (e.range.getA1Notation() === 'D9') {
    // 获取当前表格实例和对应的工作表
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const inputSheet = ss.getSheetByName("input");
    const masterSheet = ss.getSheetByName("master inventory");
    
    // 读取E9中记录的目标行号
    let currentRow = inputSheet.getRange("E9").getValue();
    
    // 获取C9和D9的当前值
    const c9Value = inputSheet.getRange("C9").getValue();
    const d9Value = e.range.getValue();
    
    // 将C9的值写入master inventory的A列对应行(对应原代码的A3起始逻辑)
    masterSheet.getRange(`A${currentRow + 2}`).setValue(c9Value);
    // 将D9的值写入master inventory的B列对应行
    masterSheet.getRange(`B${currentRow + 2}`).setValue(d9Value);
    
    // 清空D9内容(保留你原来的需求)
    e.range.clearContent();
    
    // 更新E9的行号,为下一次写入做准备
    inputSheet.getRange("E9").setValue(currentRow + 1);
  }
}

关键修改说明

  • 移除了监听C9编辑的分支,只保留D9作为唯一触发条件,这样只要编辑D9就会执行所有同步操作
  • 新增了获取C9值的代码,把它和D9的值一起写入到master inventory的A、B列对应行
  • 把原来的getCell写法改成了更直观的模板字符串A${currentRow + 2},对应你原代码中从A3开始的逻辑(如果E9初始值是1,第一次就会写入A3)
  • 保留了你原来的清空D9、更新E9行号的逻辑,确保流程和之前一致

测试小提示

  1. 先确保E9的初始值是1,这样第一次写入会对应到master inventory的A3和B3
  2. 在input表的C9填入内容,然后编辑D9,检查master inventory的对应行是否同时出现C9和D9的值
  3. 确认D9是否被清空,E9的数值是否自动加1

内容的提问来源于stack exchange,提问作者nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:48:34