我想知道如何修改脚本以针对指定标签(检查)而不是所有标签。下面是我的脚本:
function onEdit(e) {
var sheet, cols, colInd, offset, format;
sheet = e.source.getActiveSheet();
cols = [7,13,14,16];
colInd = cols.indexOf(e.range.columnStart);
if (colInd == -1) return;
if (colInd < 3) {
offset = [4,-1,1,1];
format = "MM/dd/yyyy HH:mm:ss";
e.range.offset(0, offset[colInd])
.setValue(Utilities.formatDate(new Date(), "GMT+8", format));
} else {
setValidation(e);
}
}
答案 0 :(得分:1)
如果要在编辑文档中的任何图纸时获取对“检查”图纸的引用,则Raserhin的答案有效。
如果您只想在编辑“检查”表时运行代码,请使用以下代码。
function onEdit(e) {
var sheet, cols, colInd, offset, format;
sheet = e.source.getActiveSheet();
if (sheet.getName() === 'Check') { // Condition to check edited Sheet
cols = [7,13,14,16];
colInd = cols.indexOf(e.range.columnStart);
if (colInd == -1) return;
if (colInd < 3) {
offset = [4,-1,1,1]
format = "MM/dd/yyyy HH:mm:ss";
e.range.offset(0, offset[colInd])
.setValue(Utilities.formatDate(new Date(), "GMT+8", format));
} else {
setValidation(e);
}
}
}
答案 1 :(得分:0)
重新阅读您的问题后,我认为您的意思是仅在修改工作表onEdit
时才执行Check
。
在这种情况下,您应该只输入if
语句以确保编辑在正确的工作表中进行。因此,使用您的原始代码将类似于:
function onEdit(e) {
var cols, colInd, offset, format;
if(e.range.getSheet().getName() = 'Check'){
cols = [7,13,14,16];
colInd = cols.indexOf(e.range.columnStart);
if (colInd == -1) return;
if (colInd < 3) {
offset = [4,-1,1,1];
format = "MM/dd/yyyy HH:mm:ss";
e.range.offset(0, offset[colInd])
.setValue(Utilities.formatDate(new Date(), "GMT+8", format));
} else {
setValidation(e);
}
}
}