如何用Google Apps Script的onEdit()函数将标记行移至Google Sheets目标表顶部
修改Google Apps Script实现行移动到目标工作表顶部
你只需要调整目标工作表的插入位置,先在表头下方(第2行)插入空白行,再将源行移动到这个位置即可——不需要手动下移所有行,SpreadsheetApp的insertRowBefore方法会自动完成行下移操作。
修改后的代码如下:
function onEdit(e) { const src = e.source.getActiveSheet(); const r = e.range; const row = r.getRow(); const col = r.getColumn(); if (col !== 11 || row === 1) return; if (e.value === "Complete") { const dest3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Complete"); // 在目标表的第2行前插入一行(表头下方) dest3.insertRowBefore(2); // 将源行移动到目标表的第2行位置 src.getRange(row, 1, 1, 11).moveTo(dest3.getRange(2, 1, 1, 11)); src.deleteRow(row); } }
关键修改说明:
- 使用
dest3.insertRowBefore(2)在目标工作表的第2行(表头下方)插入新行,原有数据会自动下移 - 将
moveTo的目标位置改为dest3.getRange(2, 1, 1, 11),也就是刚插入的空白行位置 - 保留原有的删除源行逻辑不变
这样每次标记为“Complete”的行都会被移动到目标工作表的最顶部(表头下方第一行)。
内容的提问来源于stack exchange,提问作者Pablo Wolf
相关产品推荐
相关产品推荐

