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

Google Sheets脚本优化需求:勾选复选框时自动复制指定列值至另一工作表空单元格并取消勾选

Google Sheets脚本优化需求:勾选复选框时自动复制指定列值至另一工作表空单元格并取消勾选

您好!针对您在Google Sheets中遇到的脚本问题,我帮您重新优化了逻辑,直接实现勾选G列或K列复选框时,将对应行的D列、H列值同步到DELIVERED工作表A列的第一个空单元格,同时解决之前的覆盖和行数量限制问题:

优化后的完整脚本

function onEdit(e) {
  // 获取当前编辑的单元格对象
  const editedCell = e.range;
  const editedSheet = editedCell.getSheet();
  const editedRow = editedCell.getRow();
  const editedCol = editedCell.getColumn();
  
  // 只处理WEEKPLANNING工作表,且编辑的是G列(7)或K列(11)的复选框,且状态为勾选(TRUE)
  if (editedSheet.getName() !== "WEEKPLANNING" || ![7,11].includes(editedCol) || editedCell.getValue() !== true) {
    return;
  }
  
  try {
    // 获取当前行的D列(4)和H列(8)的值
    const dValue = editedSheet.getRange(editedRow, 4).getValue();
    const hValue = editedSheet.getRange(editedRow, 8).getValue();
    
    // 打开DELIVERED工作表
    const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DELIVERED");
    // 找到DELIVERED表A列的第一个空行(从第一行开始查找)
    const firstEmptyRow = targetSheet.getRange("A:A").getValues().flat().findIndex(val => val === "") + 1;
    // 如果A列全满,就用下一行(避免报错)
    const targetRow = firstEmptyRow === 0 ? targetSheet.getLastRow() + 1 : firstEmptyRow;
    
    // 将D和H列的值写入DELIVERED表的A列目标行(如果需要分两列存储,可拆分为两个setValue操作)
    targetSheet.getRange(targetRow, 1).setValue(`${dValue} ${hValue}`);
    
    // 取消当前勾选的复选框,防止重复触发
    editedCell.setValue(false);
  } catch (error) {
    console.log("执行出错:", error);
    SpreadsheetApp.getUi().alert("脚本执行失败,请检查设置!");
  }
}

关键逻辑说明

  • 精准触发判断:只响应WEEKPLANNING表中G/K列的复选框勾选动作,其他操作不会触发脚本,避免无效执行
  • 直接写入目标表:跳过中间存到同表A列的步骤,直接把D/H列值写入DELIVERED表,彻底解决行数量限制问题
  • 避免数据覆盖:通过查找DELIVERED表A列第一个空行来写入数据,不会覆盖已有内容
  • 自动取消勾选:执行完成后自动把复选框设为未勾选状态,防止误操作重复复制数据

使用方法

  1. 打开你的Google表格,点击顶部菜单栏的「工具」>「脚本编辑器」
  2. 清空默认的代码,粘贴上面的脚本
  3. 点击脚本编辑器顶部的「保存」按钮,给脚本起个名字(比如DeliverSync)
  4. 回到表格页面,勾选WEEKPLANNING表中G列或K列的复选框测试效果即可

备注:内容来源于stack exchange,提问作者Yorrick Claes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 08:55:29