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

Google Sheets项目管理脚本调整:将完成任务移至Complete工作表顶部

修改Google Sheets脚本:将完成任务移至工作表顶部

要实现最新完成的任务排在「Complete」工作表顶部,不能直接替换getLastRow()为getFirstRow()(会覆盖表头且无法实现插入逻辑),正确的做法是在表头下方插入新行,再将完成任务移至该位置。以下是修改后的脚本:

function onEdit(e) {
  const src = e.source.getActiveSheet();
  const r = e.range;
  // 仅处理Tasks表第7列(复选框列)且非表头行的编辑
  if (src.getName() !== "Tasks" || r.columnStart !== 7 || r.rowStart === 1) return;
  
  const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Complete");
  // 在Complete表的表头下方(第2行)插入空行
  dest.insertRowBefore(2);
  // 将完成的任务行移动到刚插入的空行位置
  src.getRange(r.rowStart, 1, 1, 7).moveTo(dest.getRange(2, 1, 1, 7));
  // 删除Tasks表中已完成的行
  src.deleteRow(r.rowStart);
}

关键修改说明

  • 新增dest.insertRowBefore(2):在「Complete」表的第2行(默认第1行为表头)插入空行,既避免覆盖表头,又能让新任务排在所有已完成任务的最前面
  • 修改moveTo的目标位置为dest.getRange(2, 1, 1, 7):直接将完成任务移至刚插入的空行,实现最新完成任务置顶的需求

内容的提问来源于stack exchange,提问作者Danny Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 02:00:11