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

求适用于全表格行范围的Google Sheets复选框触发复制宏

Google Sheets 复选框触发行复制脚本

步骤1:打开脚本编辑器

打开你的Google Sheets表格,点击顶部菜单栏的扩展程序 > Apps 脚本,进入脚本编辑器。

步骤2:粘贴脚本代码

删除编辑器内的默认代码,替换为以下脚本:

function onEdit(e) {
  // 获取触发编辑的单元格
  const editedCell = e.range;
  // 复选框所在列(A列=1,B列=2,以此类推,按需修改)
  const checkboxColumn = 1;
  if (editedCell.getColumn() !== checkboxColumn) return;
  
  // 获取当前行数据
  const sourceSheet = editedCell.getSheet();
  const rowNum = editedCell.getRow();
  // 表头所在行(无表头则设为0,按需修改)
  const headerRow = 1;
  if (rowNum <= headerRow) return;
  
  // 复选框勾选时执行复制
  if (editedCell.getValue() === true) {
    // 目标工作表名称(替换为你的实际表名,注意大小写和空格)
    const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("目标工作表");
    if (!targetSheet) {
      SpreadsheetApp.getUi().alert("目标工作表不存在,请检查名称!");
      return;
    }
    
    // 复制当前行到目标表最后一行下方
    const sourceRow = sourceSheet.getRange(rowNum, 1, 1, sourceSheet.getLastColumn());
    sourceRow.copyTo(targetSheet.getRange(targetSheet.getLastRow() + 1, 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    
    // 可选:复制后取消勾选复选框,避免重复触发
    // editedCell.setValue(false);
  }
}

步骤3:配置脚本参数

  • 修改checkboxColumn:把数字改成你复选框所在的列号(比如复选框在C列就写3)
  • 修改headerRow:如果表格有表头,填写表头所在行号(比如第1行就写1),无表头则设为0
  • 修改"目标工作表":替换成你要复制到的工作表的准确名称

步骤4:保存并测试

  • 点击脚本编辑器顶部的保存按钮,给脚本命名(比如CheckboxCopyRow)
  • 返回表格,勾选任意行的复选框,验证目标工作表是否成功复制该行数据

注意事项

  • 脚本是自动触发的onEdit触发器,编辑表格时会自动运行,无需手动执行宏
  • 如果需要复制单元格格式,把PASTE_VALUES改为PASTE_ALL
  • 确保目标工作表存在,否则会弹出错误提示

内容的提问来源于stack exchange,提问作者Олексій Кіла

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:10:12