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

如何在Google Sheet中点击按钮将Sheet1选中数据复制到Sheet2?

实现Google Sheets选中数据从Sheet1复制到Sheet2

前置准备

  • 给Sheet1添加复选框:选中Sheet1中用于标记选中行的列(例如A列),右键选择「数据验证」,条件选择「复选框」,点击保存完成设置。
  • 确认Sheet2已存在目标表格结构,且已有历史数据。

编写Google Apps Script代码

  1. 打开Google Sheets,点击顶部菜单「扩展」>「Apps Script」进入脚本编辑器。
  2. 删除默认的myFunction,替换为以下代码:
function copySelectedRows() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet1 = ss.getSheetByName('Sheet1');
  const sheet2 = ss.getSheetByName('Sheet2');
  
  // 获取Sheet1的所有数据(从第2行开始,假设第1行是表头)
  const data = sheet1.getDataRange().getValues();
  const rowsToCopy = [];
  
  // 遍历行,收集勾选复选框的行数据
  for (let i = 1; i < data.length; i++) {
    const row = data[i];
    // 假设复选框在A列(索引0),勾选时值为true
    if (row[0] === true) {
      rowsToCopy.push(row.slice(1)); // 去掉复选框列的数据,按需调整
      // 可选:复制后清空复选框
      sheet1.getRange(i+1, 1).setValue(false);
    }
  }
  
  // 将选中的数据追加到Sheet2的最后一行
  if (rowsToCopy.length > 0) {
    const nextRow = sheet2.getLastRow() + 1;
    sheet2.getRange(nextRow, 1, rowsToCopy.length, rowsToCopy[0].length).setValues(rowsToCopy);
  }
}

注:如果复选框不在A列,调整代码中row[0]的索引(列从0开始计数);若需要保留复选框列数据,删除slice(1)即可。

添加提交按钮

  1. 返回Sheet1,点击顶部菜单「插入」>「绘图」,绘制一个按钮形状(例如矩形),添加文字「提交」。
  2. 点击绘图右上角的三个点,选择「分配脚本」,输入copySelectedRows(与函数名一致),点击确定。

操作流程

选中Sheet1中的数据行,点击提交按钮将其复制到Sheet2

  • 勾选Sheet1中需要复制的数据行对应的复选框
  • 点击「提交」按钮
  • 选中的数据会自动追加到Sheet2的现有数据下方

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:20:55