运行 仅在选定工作表上的 onEdit 脚本
Running an onEdit Script on selected sheets only
我是编写脚本的新手,但已经设法复制和编辑(躲避...)一个将 onEdit 的脚本,将自定义时间戳放入发生编辑的单元格旁边的单元格中。该脚本针对 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
}
}
这对我有用(在 Sheet1 和 Sheet2 上):
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());
}
}
}
我是编写脚本的新手,但已经设法复制和编辑(躲避...)一个将 onEdit 的脚本,将自定义时间戳放入发生编辑的单元格旁边的单元格中。该脚本针对 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
}
}
这对我有用(在 Sheet1 和 Sheet2 上):
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());
}
}
}