Google apps script 当其他列发生更改时,向一列添加时间戳

Google apps script 当其他列发生更改时,向一列添加时间戳,google-apps-script,google-sheets,timestamp,Google Apps Script,Google Sheets,Timestamp,我试图在同一行中的其他单元格完成或更改时向列添加时间戳 如果只更改了一列,而不是多列,则下面的脚本可以工作 function onEdit() { var s = SpreadsheetApp.getActiveSheet(); if( s.getName() == "Allocation Requests" ) { //checks that we're on the correct sheet var r = s.getActiveCell(); if( r.getC

我试图在同一行中的其他单元格完成或更改时向列添加时间戳

如果只更改了一列,而不是多列,则下面的脚本可以工作

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Allocation Requests" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 7) { //checks the column
      var nextCell = r.offset(0, 7);
          nextCell.setValue(new Date());
      }
  }
}
我试图得到它,这样,如果列E、F、G或H被更改,那么列m中的时间戳将被更新。谢谢

也许这样行

函数onEdit(){
var s=SpreadsheetApp.getActiveSheet();
如果(s.getName()=“Sheet1”){//检查我们的工作表是否正确
var r=s.getActiveCell();
如果(r.getColumn()==5){//检查该列
var nextCell=r.offset(0,8);
setValue(新日期());
}
如果(r.getColumn()==6){//检查该列
var nextCell=r.offset(0,7);
setValue(新日期());
}
如果(r.getColumn()==7){//检查该列
var nextCell=r.offset(0,6);
setValue(新日期());
}
如果(r.getColumn()==8){//检查该列
var nextCell=r.offset(0,5);
setValue(新日期());
}
}

}
像这样的东西

function onEdit() {
      var s = SpreadsheetApp.getActiveSheet();
      if( s.getName() == "Allocation Requests" ) { //checks that we're on the correct sheet
        var r = s.getActiveCell();
        if( r.getColumn() >= 5 && r.getColumn() <= 8) { //checks the column
           s.getRange(r.getRow(),13).setValue(new Date());
          }
      }
    }
函数onEdit(){
var s=SpreadsheetApp.getActiveSheet();
如果(s.getName()=“分配请求”){//检查我们的工作表是否正确
var r=s.getActiveCell();

如果(r.getColumn()>=5&&r.getColumn()哦,请更改您的工作表名称-我将其作为工作表1,尽管稍微更改一下(以及工作表名称)确实有效。谢谢。尽管我现在发现,即使我在时间戳列中添加/删除时间戳,这也会添加一个更新的时间戳。事实上,这就是我在或中更改的情况。这是一个小小的改进,因为在代码中添加或删除列不需要为每列复制或粘贴更多代码