我有一个代码,在编辑第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);
}
这是我需要更改为仅在第一次编辑时更新的底部位。对此有任何帮助将非常感激。
答案 0 :(得分:0)
用这一行替换最后一行或代码:
if (e.range.offset(0, 5).getValue() === '') {
e.range.offset(0, 5).setValue(e.value ? new Date() : null);
}
它是一样的'是空的吗?'检查,就像你在剧本的第一部分一样。