Google apps script 粘贴数据或查询时间戳时onedit()不起作用,

Google apps script 粘贴数据或查询时间戳时onedit()不起作用,,google-apps-script,google-sheets,spreadsheet,Google Apps Script,Google Sheets,Spreadsheet,您好,我正在使用这个脚本在google sheet中为我的条目添加时间戳,但它只在手动输入数据时为我提供日期,在将数据粘贴到多个单元格或使用查询时不起作用。在粘贴或查询数据时如何使其工作 function onEdit() { var s = SpreadsheetApp.getActiveSheet(); if( s.getName() == "data02" ) { var r = s.getActiveCell(); if

您好,我正在使用这个脚本在google sheet中为我的条目添加时间戳,但它只在手动输入数据时为我提供日期,在将数据粘贴到多个单元格或使用查询时不起作用。在粘贴或查询数据时如何使其工作

 function onEdit() {
       var s = SpreadsheetApp.getActiveSheet();
       if( s.getName() == "data02" ) { 
       var r = s.getActiveCell();
 if( r.getColumn() == 1 ) { 
    var nextCell = r.offset(0, 1);
    if( nextCell.getValue() === '' ) 
    nextCell.setValue(new Date());
}
} }试试这个:

function onEdit(e) {
  //e.source.toast('entry');
  const sh = e.range.getSheet();
  if (sh.getName() == "data02" && e.range.columnStart == 1 && e.range.columnEnd == 1) {
    //e.source.toast('cond');
    sh.getRange(e.range.rowStart, 2, e.range.rowEnd - e.range.rowStart + 1, 1).setValue(new Date());
  }
}

为了支持粘贴,您必须使用事件对象来确定范围。@MetaMan显然最近还不够!您可以通过
e.range和e.range.columnStart、e.range.columnsend、er.range.rowStart和e.range.rowEnd访问该范围
并非所有内容都已在文档中发布,但已经存在很长一段时间。您好,复制部分正在工作,但在新的工作表中,我正在使用此查询=查询(data02!a:a,“选择*”)要导出该数据,第1列中的数据和时间戳应该在第2列中,但它根本不起作用。这是因为查询不是用户编辑,也不会生成onedit触发器。我如何使它与查询或您知道的任何其他方法一起工作?我想您可以使用脚本执行查询,并让脚本执行。如果正确提供事件对象,甚至可以让脚本调用onedit。