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

如何让Google Apps Script在4个指定工作表生效并扩展行迁移功能

多员工工作表的复选框行迁移脚本修改

修改后的完整脚本

function onEdit(e) {
  // 定义所有需要生效的员工工作表名称,替换成你的4个员工姓名
  const employeeSheets = ["Cynthia", "张三", "李四", "王五"];
  const src = e.source.getActiveSheet();
  const r = e.range;

  // 触发条件判断:不在员工列表里、不是第9/10列、是表头行(第2行)、复选框未勾选,直接返回
  if (!employeeSheets.includes(src.getName()) || 
      ![9, 10].includes(r.columnStart) || 
      r.rowStart === 2 || 
      e.value !== "TRUE") {
    return;
  }

  let destSheetName;
  // 根据列判断是sold还是lost,对应目标工作表
  if (r.columnStart === 9) {
    destSheetName = "Sold";
  } else if (r.columnStart === 10) {
    destSheetName = "Lost";
  }

  const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(destSheetName);
  // 迁移第1到8列的内容到目标表最后一行的下一行
  src.getRange(r.rowStart, 1, 1, 8).moveTo(dest.getRange(dest.getLastRow() + 1, 1, 1, 8));
  // 删除原工作表中的该行
  src.deleteRow(r.rowStart);
}

关键改动说明

  • 多工作表适配:把4个员工的工作表名称放进employeeSheets数组,后续要增减员工直接修改这个数组就行,不用改判断逻辑
  • 扩展lost功能:新增第10列(对应lost复选框,如果你实际列数不是10,改成你的lost复选框所在列号)的判断,勾选后自动迁移到Lost工作表
  • 避免误触发:增加了复选框状态判断,只有当复选框被勾选(e.value === "TRUE")时才执行迁移,取消勾选不会触发操作
  • 表头保护:保留了原脚本的表头行(第2行)跳过逻辑,防止误操作表头

注意事项

  • 确保你的Sold和Lost工作表已经存在于当前表格中
  • 如果你的lost复选框不在第10列,把代码里的10改成实际的列号
  • 员工工作表名称要和数组里的完全一致,大小写也要匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:51:10