我想在我的日期时间行中获得一个编辑时间戳,但是当我在 google 脚本中 copy/paste 多行时,我也需要它作为时间戳

I want to get a timestamp on edit in my datetime row, but I need it to also timestamp when I copy/paste multiple rows in google script

我正在尝试将时间戳添加到编辑时的日期时间行。我现在得到的是,如果一次编辑一行,它就可以工作。但是,我需要的是当我在多行中 copy/paste 值时为每一行添加时间戳。

function getDatetimeCol(){
  var SHEET_NAME = 'Queue';
  var DATETIME_HEADER = 'datetime (+48h for archive)';
  var headers = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME).getDataRange().getValues().shift();
  var colindex = headers.indexOf(DATETIME_HEADER);
  return colindex+1;}
  

function onEdit(e) {  
  var SHEET_NAME = 'Queue';
  var ss = SpreadsheetApp.getActiveSheet();
  var cell = ss.getActiveCell();
  var datecell = ss.getRange(cell.getRowIndex(), getDatetimeCol());
  if (ss.getName() == SHEET_NAME && cell.getColumn() == 1 && !cell.isBlank() && datecell.isBlank()) {      
    datecell.setValue(new Date()).setNumberFormat("yyyy-MM-dd hh:mm");
  }
  };
function onEdit(e) {
  //e.source.toast('entry');
  const sh = e.range.getSheet();
  if (sh.getName() == 'Queue' && e.range.columnStart == 1) {
    //e.source.toast('cond');
    let col = {};
    sh.getRange(1, 1, 1, sh.getLastColumn()).getValues()[0].forEach((h, i) => { col[h] = i + 1 });
    for (var i = 0; i < e.range.rowEnd - e.range.rowStart + 1; i++) {
      let rg = sh.getRange(e.range.rowStart + i, col['datetime (+48h for archive)']);
      if (rg.isBlank() && sh.getRange(e.range.rowStart,1).getValue() != '') {
        //e.source.toast('if');
        rg.setValue(new Date()).setNumberFormat("yyyy-MM-dd hh:mm");
      }
    }
  }
}