Google Sheets迁移行至Completed标签并记录原标签名是否可行?
需求可实现,具体方案如下
核心逻辑:通过修改Google Apps Script,在迁移行时自动记录原工作表名称到
Completed标签的B列,同时兼容多部门工作表的触发逻辑实现步骤:
- 打开你的Google表格,点击顶部菜单栏的「扩展程序」→「Apps脚本」
- 替换原有的脚本代码为以下内容:
function onEdit(e) { const range = e.range; const sheet = range.getSheet(); const targetSheetName = "Completed"; const targetSheet = e.source.getSheetByName(targetSheetName); // 跳过目标表本身,只处理部门任务表 if (sheet.getName() === targetSheetName) return; // 仅处理A列的下拉值变更为"Done"的情况 if (range.getColumn() === 1 && range.getValue() === "Done") { const row = range.getRow(); const rowData = sheet.getRange(row, 2, 1, sheet.getLastColumn() - 1).getValues()[0]; // 获取除A列外的行数据 // 构造目标行数据:A列为迁移日期,B列为原工作表名称,后续为原行数据 const targetRowData = [new Date(), sheet.getName(), ...rowData]; // 将数据追加到Completed表末尾 targetSheet.appendRow(targetRowData); // 删除原工作表中的该行 sheet.deleteRow(row); } } - 保存脚本,关闭脚本编辑器
- 回到表格测试:在任意部门工作表的A列选择"Done",该行会自动迁移到
Completed表,A列显示迁移日期,B列显示原工作表名称
关键说明:
- 脚本通过
onEdit触发器监听表格编辑事件,只会响应部门工作表的A列变更 - 迁移时自动把原工作表名称插入到目标行的B列,同时保留原行的其他数据
- 兼容任意数量的部门任务工作表,只要不是
Completed表,都会触发迁移逻辑
- 脚本通过
内容的提问来源于stack exchange,提问作者Jord Jamison
相关产品推荐
相关产品推荐

