函数 onEdit(e) 仅适用于单个单元格编辑



我使用以下脚本为 A 列中的每个编辑添加时间戳,但是如果我复制一系列单元格并粘贴到 A 列,该脚本将仅适用于第一个单元格。有没有办法捕获所有编辑单元格的时间戳?

function onEdit(e) {
var startRow=3;
var targetColumn=1;
var ws="Master Data";
var row = e.range.getRow();
var col = e.range.getColumn();

if (col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws ){ 
var currentDate = new Date();

if(e.source.getActiveSheet().getRange(row,1).getValue() !== ""){
if(e.source.getActiveSheet().getRange(row,2).getValue() == ""){
e.source.getActiveSheet().getRange(row,2).setValue(currentDate);
}    
}
}
}
function onEdit(e) {
//e.source.toast('Entry');
const sh=e.range.getSheet();
if (e.range.columnStart==1 && e.range.rowStart>2 && sh.getName()=="Master Data") { 
var ts = Utilities.formatDate(new Date(),Session.getScriptTimeZone(),"E MMM dd, yyyy HH:mm:ss");
var vs=sh.getRange(e.range.rowStart,e.range.columnStart,e.range.rowEnd-e.range.rowStart+1,2).getValues();
vs.forEach(function(r,i){
if(r[0].toString().length!=0 && !r[1]) {
sh.getRange(i+e.range.rowStart,2).setValue(ts);
}
});
}
}

on编辑事件对象

相关内容

最新更新