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

当复选框为TRUE且A、C列非空时,将行复制至目标工作表

Google Sheets 行复制脚本实现

以下是满足你需求的完整脚本,直接复制使用即可:

function copyCheckedRows() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = ss.getSheetByName('Source Sheet');
  const destSheet = ss.getSheetByName('Destination Sheet');
  
  // 读取Source Sheet所有数据(默认第1行为表头)
  const data = sourceSheet.getDataRange().getValues();
  const rowsToCopy = [];
  
  // 遍历每一行(跳过表头,从第2行开始)
  for (let i = 1; i < data.length; i++) {
    const row = data[i];
    const isChecked = row[4]; // E列对应数组索引4
    const colA = row[0];
    const colC = row[2];
    
    // 检查条件:复选框勾选、A列非空、C列非空
    if (isChecked === true && colA !== '' && colC !== '') {
      rowsToCopy.push(row);
    }
  }
  
  // 把符合条件的行批量写入目标表
  if (rowsToCopy.length > 0) {
    const nextEmptyRow = destSheet.getLastRow() + 1;
    destSheet.getRange(nextEmptyRow, 1, rowsToCopy.length, rowsToCopy[0].length).setValues(rowsToCopy);
    
    // 可选:复制后清空已处理的复选框,避免重复复制
    for (let i = 1; i < data.length; i++) {
      const row = data[i];
      if (row[4] === true && row[0] !== '' && row[2] !== '') {
        sourceSheet.getRange(i + 1, 5).setValue(false); // i+1是实际行号,5是E列的列号
      }
    }
  }
}

使用步骤

  • 打开你的表格,点击「扩展程序」→「Apps Script」
  • 删除默认代码,粘贴上面的脚本
  • 保存项目(随便起个名字,比如CopyCheckedRows)
  • 首次运行会弹出授权请求,按提示完成授权即可
  • 若需自动触发,点击左侧「触发器」→「添加触发器」:选择函数copyCheckedRows,事件类型选「编辑时」,这样每次修改表格都会自动检查执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:42:35