Javascript 向移动的行添加时间戳

Javascript 向移动的行添加时间戳,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,这是我在按下复选框时用来移动一行的函数,它工作得很好,我只想在移动的行旁边添加一个时间戳,以注册时间,但我做不到 function onEdit(event) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = event.source.getActiveSheet(); var r = event.source.getActiveRange(); if(s.getName() == "main"

这是我在按下复选框时用来移动一行的函数,它工作得很好,我只想在移动的行旁边添加一个时间戳,以注册时间,但我做不到

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "main" && r.getColumn() == 4 && r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Completed");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}

这应该能奏效。不是将行移动到另一个工作表,而是获取行数据,将时间戳作为新列添加到行数据,然后将此数据作为新行附加到另一个工作表

if(s.getName() == "main" && r.getColumn() == 4 && r.getValue() == true) {
  var row = r.getRow(),
      numColumns = s.getLastColumn(),
      targetSheet = ss.getSheetByName("Completed"),
      rowData = s.getRange(row, 1, 1, numColumns).getValues()[0];
  rowData.push(new Date());
  targetSheet.appendRow(rowData);
  s.deleteRow(row);
  SpreadsheetApp.flush;
}

编辑对建议作者的提示:编辑时请不要更改大括号样式。这是一个代码风格的首选项,请努力保持它。Allman样式也是JS brace样式的罕见选择。