当A列中的状态更改为“已完成”时,该行将被移动到另一个名为“存档”的选项卡。我已尝试编辑现有脚本,以便在状态更改为“已完成”时在列C中插入时间戳,但脚本运行速度太快且未插入时间戳。
我试图在getRange函数之后插入一个延迟函数,但它根本没有输入日期。我也试图创建一个触发器延迟并没有任何成功。
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Terminations" && r.getColumn() == 1 && r.getValue() == "Completed") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Processed Terminations");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
在C列中,我希望在行标记为“完成”时插入时间戳
试试这个:
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Terminations" && r.getColumn() == 1 && r.getValue() == "Completed") {
event.range.getSheet().getRange(event.range.rowStart,3).setValue(Utilities.formatDate(new Date(), Session.getTimeZone(), "MM/dd/yyyy HH:mm:ss"));
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Processed Terminations");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}