如果我理解正确的话,如果在 B 列中选择了 CLOSED 状态,则您想要移动整行。
但是,IF 函数中不检查 CLOSED 状态。
此外,并不是复制整行,而是只复制 2 个单元格:
const row_new = as.getRange(row, 1, 1, col)
如果您像这样更改代码,那么一切都会正常运行:
Update
您在评论中添加了有关 HOLD 的附加条件。
下面是处理这种情况的更新代码:
function onEdit(e) {
const row = e.range.getRow();
const col = e.range.getColumn();
const as = e.source.getActiveSheet();
const lc = as.getLastColumn();
if(as.getName() == "Sheet" && col == 2 && row > 1 && as.getRange(row,col).getValue() == 'CLOSED') {
const row_new = as.getRange(row, 1, 1, lc);
row_new.copyTo(as.getRange(as.getLastRow() + 1, 1, 1, lc));
as.deleteRow(row);
} else if(as.getName() == "Sheet" && col == 2 && row > 1 && as.getRange(row,col).getValue() == 'HOLD'){
as.insertRowAfter(1);
const row_new = as.getRange(row + 1, 1, 1, lc);
row_new.copyTo(as.getRange(2, 1, 1, lc));
as.deleteRow(row + 1);
}
}