当“状态”从 OPEN 更改为 COMPLETED 时,如何将一行移动到 sheet (GOOGLE SHEET) 的底部
How to move a row to bottom of sheet (GOOGLE SHEET) when “Status” is changed to a COMPLETED from OPEN
当“状态”更改为完整时,如何将一行移动到同一行的底部sheet。
我想弄清楚如何在状态 B 列值从打开更改为关闭后将一行移到底部。
Sheet name is: Sheet1, 状态下拉菜单在Column B, 下拉菜单包含: OPEN, HOLD, PENDING, CLOSED
状态变为CLOSED时需要触发器
我找到了这段代码,但它不起作用:
function onEdit(e) {
const row = e.range.getRow();
const col = e.range.getColumn();
const as = e.source.getActiveSheet();
if(as.getName() == "Sheet1" && col == 2 && row > 1 && !as.getRange(row,col).getValue()=='') {
const row_new = as.getRange(row,1,1,col);
row_new.copyTo(as.getRange(as.getLastRow()+1,1,1,col));
as.deleteRow(row);
}
}
如果我没理解错的话,如果在 B 列中选择了 CLOSED 状态,您想移动整行。
但是,IF 函数中没有检查 CLOSED 状态。
另外,不是复制整行,而是只复制2个单元格:
const row_new = as.getRange(row, 1, 1, col)
如果你像这样更改代码,那么一切正常:
更新
您在评论中添加了关于 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);
}
}
当“状态”更改为完整时,如何将一行移动到同一行的底部sheet。
我想弄清楚如何在状态 B 列值从打开更改为关闭后将一行移到底部。
Sheet name is: Sheet1, 状态下拉菜单在Column B, 下拉菜单包含: OPEN, HOLD, PENDING, CLOSED
状态变为CLOSED时需要触发器
我找到了这段代码,但它不起作用:
function onEdit(e) {
const row = e.range.getRow();
const col = e.range.getColumn();
const as = e.source.getActiveSheet();
if(as.getName() == "Sheet1" && col == 2 && row > 1 && !as.getRange(row,col).getValue()=='') {
const row_new = as.getRange(row,1,1,col);
row_new.copyTo(as.getRange(as.getLastRow()+1,1,1,col));
as.deleteRow(row);
}
}
如果我没理解错的话,如果在 B 列中选择了 CLOSED 状态,您想移动整行。 但是,IF 函数中没有检查 CLOSED 状态。 另外,不是复制整行,而是只复制2个单元格:
const row_new = as.getRange(row, 1, 1, col)
如果你像这样更改代码,那么一切正常:
更新
您在评论中添加了关于 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);
}
}