在三个谷歌表单上添加时间戳onedit与谷歌应用程序脚本



如果colb在3张纸上编辑,我将在cola中添加时间戳。

我的触发器正在编辑,信息将自动更新。它对一个人来说很好,但对3个人来说,我收到了一个错误,无法运行脚本。

有没有比我现在做的更简单的方法可以在三张纸的b栏中查找编辑?

function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if (s.getName() == "Igualdad Op Hom Mu") {
var r = s.getActiveCell();
if (r.getColumn() == 2) {
var nextCell = r.offset(0, -1);
if (nextCell.getValue() === '')
nextCell.setValue(new Date());
var s2 = SpreadsheetApp.getActiveSheet();
if (s2.getName() == "Incl Per Disc") {
var r2 = s2.getActiveCell();
if (r2.getColumn() == 2) {
var nextCell2 = r2.offset(0, -1);
if (nextCell2.getValue() === '')
nextCell2.setValue(new Date());
var s3 = SpreadsheetApp.getActiveSheet();
if (s3.getName() == "Empr y Col") {
var r3 = s3.getActiveCell();
if (r3.getColumn() == 2) {
var nextCell3 = r3.offset(0, -1);
if (nextCell3.getValue() === '')
nextCell3.setValue(new Date());
}
}
}
}
}
}
}

试试这个:

function onEdit(e) {
const sh=e.range.getSheet();
const shts=['Igualdad Op Hom Mu','Incl Per Disc','Empr y Col']
if( shts.indexOf(sh.getName())!=-1  && e.range.columnStart==2) { 
const ts=Utilities.formatDate(new Date,Session.getScriptTimeZone(),"yyyy/MM/dd HH:mm:ss");//time stamp
const rg=e.range.offset(0,-1);//next cell to the left
if(rg.getValue()=='') {
rg.setValue(ts);
}
}
}

此函数需要onedit触发器事件对象,因此除非提供事件对象,否则无法从脚本编辑器运行此脚本。

最新更新