如何在Google Sheet中点击按钮将Sheet1选中数据复制到Sheet2?
实现Google Sheets选中数据从Sheet1复制到Sheet2
前置准备
- 给Sheet1添加复选框:选中Sheet1中用于标记选中行的列(例如A列),右键选择「数据验证」,条件选择「复选框」,点击保存完成设置。
- 确认Sheet2已存在目标表格结构,且已有历史数据。
编写Google Apps Script代码
- 打开Google Sheets,点击顶部菜单「扩展」>「Apps Script」进入脚本编辑器。
- 删除默认的
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)即可。
添加提交按钮
- 返回Sheet1,点击顶部菜单「插入」>「绘图」,绘制一个按钮形状(例如矩形),添加文字「提交」。
- 点击绘图右上角的三个点,选择「分配脚本」,输入
copySelectedRows(与函数名一致),点击确定。
操作流程

- 勾选Sheet1中需要复制的数据行对应的复选框
- 点击「提交」按钮
- 选中的数据会自动追加到Sheet2的现有数据下方
内容的提问来源于stack exchange,提问作者atirut chanphet
相关产品推荐
相关产品推荐

