如何在首次编辑后编辑列时停止时间戳更新

时间:2016-05-06 11:52:54

标签: google-sheets

我有一个代码,在编辑第1列时放入时间戳,然后在另一列有“收集”字样输入时添加第二个时间戳。从中我然后计算出收集和使用该数据所花费的时间。但是,如果有人再次编辑第1列,它会更新时间戳,所以我正在寻找一个脚本,只允许它在第一次编辑时执行。这是我目前的剧本;

function onEdit(e) {
var sheet = SpreadsheetApp.getActiveSheet(); 
if( sheet.getName() == "CC sheet" ) {
  //Update timestamp when changed to collected

  var range = sheet.getActiveCell();
  Logger.log(range.getColumn())
  if( range.getColumn() == 7.0 ) { //if we are in the status column...
    var nextCell = range.offset(0, 2);
     if(range.getValue() == 'Collected')   
       if( nextCell.getValue() === '' ) //is empty?
          nextCell.setValue(new Date());
  }
//end
}


if(e.source.getActiveSheet().getName() !== 'CC sheet' || e.range.columnStart !== 1) return;
e.range.offset(0, 5).setValue(e.value ? new Date() : null);
 }

这是我需要更改为仅在第一次编辑时更新的底部位。对此有任何帮助将非常感激。

1 个答案:

答案 0 :(得分:0)

用这一行替换最后一行或代码:

if (e.range.offset(0, 5).getValue() === '') {

   e.range.offset(0, 5).setValue(e.value ? new Date() : null);

}

它是一样的'是空的吗?'检查,就像你在剧本的第一部分一样。