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

谷歌表格:复制指定行至其他工作表并自动设置列值

解决方案:用Google Apps Script实现保留原行的自动复制功能

完全可以实现需求,以下是具体的实现步骤,替代宏来完成保留原行的自动复制操作:

1. 打开脚本编辑器

在谷歌表格顶部菜单栏点击「扩展程序」>「Apps Script」,打开脚本编辑界面。

2. 替换默认代码为以下脚本

function copyToPipelineWhenReceived() {
  // 关联表格及指定工作表
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = ss.getSheetByName("FY23 Prospect Tracker");
  const targetSheet = ss.getSheetByName("FY23 Pipeline");
  
  // 获取源表全部数据(默认第1行为表头)
  const data = sourceSheet.getDataRange().getValues();
  let lastTargetRow = targetSheet.getLastRow();

  // 遍历源表每一行
  data.forEach((row, index) => {
    // 跳过表头行
    if (index === 0) return;
    // 检查K列(数组索引为10)值是否为"Received"
    if (row[10] === "Received") {
      // 组装目标表需要的行数据
      const newRow = [
        row[0],          // 源表A列(名字)
        row[1],          // 源表B列(姓氏)
        "",              // 目标表C列(按需调整,此处留空)
        "Current",       // 目标表D列(Donor Stage)
        "Committed"      // 目标表E列(Stage)
      ];
      // 将数据写入目标表末尾
      targetSheet.getRange(lastTargetRow + 1, 1, 1, newRow.length).setValues([newRow]);
      // 可选:在源表添加已处理标记(比如L列写"Copied"),取消下方注释即可
      // sourceSheet.getRange(index + 1, 12).setValue("Copied");
      lastTargetRow++;
    }
  });
}

3. 设置自动触发条件

  • 在脚本编辑器左侧点击「触发器」图标(闹钟样式)
  • 点击「添加触发器」,配置参数:
    • 选择运行函数:copyToPipelineWhenReceived
    • 事件来源:「从电子表格」
    • 事件类型:「编辑时」(编辑源表自动触发)或「定时触发」(按周期批量处理)
    • 保存后按提示完成脚本权限授权

关键说明

  • 脚本仅复制数据,不会删除源表的行,解决你之前用宏遇到的问题
  • 列索引基于数组从0开始的规则(A=0、B=1...K=10),如果工作表表头结构有变动,需对应调整索引值
  • 若要避免重复复制同一行,可启用脚本中标记已处理的可选代码,后续运行时可新增判断逻辑跳过已标记行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:27:21