利用复选框实现Google Sheets跨工作表数据自动复制
Google Sheets 实现勾选复选框自动复制行到Logs工作表
步骤1:添加复选框列
在你的体育道具命中率数据表中,选择空白列(比如A列),点击菜单栏的插入 > 复选框,为每行添加可勾选的复选框控件。
步骤2:编写Google Apps Script脚本
- 打开表格,点击菜单栏的扩展 > Apps 脚本,进入脚本编辑器。
- 删除默认的
myFunction代码,替换为以下脚本:
function onEdit(e) { // 替换为你的命中率数据表实际名称 const sourceSheetName = "命中率记录"; const targetSheetName = "Logs"; const checkboxColumn = 1; // 复选框所在列的序号,A列对应1,B列对应2,以此类推 const activeSheet = e.source.getActiveSheet(); // 仅响应指定数据表的复选框勾选操作 if (activeSheet.getName() !== sourceSheetName || e.range.columnStart !== checkboxColumn || e.value !== "TRUE") return; // 获取当前行的有效数据(跳过复选框列) const rowRange = activeSheet.getRange(e.range.rowStart, 2, 1, activeSheet.getLastColumn() - 1); const rowData = rowRange.getValues()[0]; // 定位到Logs工作表并找到最后一行 const targetSheet = e.source.getSheetByName(targetSheetName); const lastTargetRow = targetSheet.getLastRow(); // 将数据粘贴到Logs表的下一行 targetSheet.getRange(lastTargetRow + 1, 1, 1, rowData.length).setValues([rowData]); // 可选:自动取消勾选复选框,避免重复触发 e.range.setValue(false); }
- 根据你的表格情况,修改
sourceSheetName为数据表的实际名称,调整checkboxColumn为复选框所在列的序号。 - 点击脚本编辑器的保存按钮,给脚本命名(比如"CopyToLogs")。
步骤3:测试功能
回到数据表,勾选任意一行的复选框,该行数据会自动复制到Logs工作表的最后一行之后,同时复选框会自动取消勾选(如果保留了可选代码)。
注意事项
- 确保
Logs工作表已存在,且列结构和数据表(除复选框列外)一致,防止数据错位。 - 脚本使用简单触发器
onEdit,无需额外配置触发条件,保存后即可生效。
内容的提问来源于stack exchange,提问作者TooTallDerr
相关产品推荐
相关产品推荐

