仅在选定的工作表上运行onEdit脚本



我是编写脚本的新手,但我已经成功地复制和编辑了(bodge…(一个脚本,该脚本将在编辑时将自定义时间戳放入进行编辑的单元格旁边的单元格中。该脚本的目标是x2个onEdit列(3,6(,对单元格偏移量(-1(进行时间戳。

工作簿现在已经发展到包括多个工作表,其中大部分脚本不适合在上面运行,但我不知道如何指定它应该在哪些工作表上运行。

以下是我拼凑的脚本,适用于所有纸张,我现在只想将其限制在特定的纸张上。

function onEdit(e) {
var colsToWatch = [3,6],
offset = [-1,-1],
ind = colsToWatch.indexOf(e.range.columnStart);
if (ind === -1 || e.range.rowStart === 1) return;
e.range.offset(0, offset[ind])
.setValue(!e.value ? null : Utilities.formatDate(new Date(), "GMT+1", "dd MMM yyyy     HH:mm.ss"))
}

请有人帮我提供代码,只在特定的工作表上运行脚本。我也非常感谢任何关于使用更简单的脚本来实现相同目标的建议,特别是如果它消除了在初始编辑后对onEdit单元格进行编辑时被覆盖的时间戳。

非常感谢!!

function onEdit(e) {
const sh = e.range.getSheet();
const shts = ['Sheet1','Sheet2'];
const idx = shts.indexOf(sh.getName());
if(~idx ) {
//Whatever code you put here will only run on Sheet1 or Sheet2
}
}

这对我有效(在第1张和第2张上(:

function onEdit(e) {
//e.source.toast('entry');
const sh = e.range.getSheet();
const shts = ['Sheet1','Sheet2'];
const idx = shts.indexOf(sh.getName());
if(~idx ) {
let rg = sh.getRange(e.range.rowStart,9);
if(rg.isBlank()) {
rg.setValue(new Date());
}
}
}

JavaScript参考

相关内容

最新更新