求适用于全表格行范围的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,提问作者Олексій Кіла
相关产品推荐
相关产品推荐

