延迟编辑函数以插入时间戳

问题描述 投票:-1回答:1

当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列中,我希望在行标记为“完成”时插入时间戳

google-apps-script
1个回答
0
投票

试试这个:

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);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.