我需要修复脚本“代码”,以便从下拉列表中选择“-”,“-”或“ ---”值时,将清除脚本控制的单元格。
这是Google表格的链接:
代码:
function onEdit(e) {
var ss=e.source;
var rg=e.range;
var sh=rg.getSheet();
if(rg.columnStart!=2 && rg.columnStart!=10 && rg.columnStart!=18 && rg.columnStart!=26 && rg.columnStart!=34){return;}
setClearOnNoValue(e);
}
function setClearOnNoValue(e) {
var rg=e.range;
var sh=rg.getSheet();
if(e.value && e.value.length>0) {//added e.value.length>0
sh.getRange(rg.rowStart, rg.columnStart + 3).setValue(Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth()+1,new Date().getDate(),new Date().getHours(),new Date().getMinutes()),Session.getScriptTimeZone(),"d/MMM/yyyy HH:mm"));
}else{
sh.getRange(rg.rowStart, rg.columnStart + 3).setValue('');
}
}
答案 0 :(得分:1)
尝试一下:
function onEdit(e) {
var ss=e.source;
var rg=e.range;
var sh=rg.getSheet();
var name=sh.getName();
if(rg.columnStart!=2 && rg.columnStart!=10 && rg.columnStart!=18 && rg.columnStart!=26 && rg.columnStart!=34){return;}
setClearOnNoValue(e);
}
function setClearOnNoValue(e) {
var rg=e.range;
var sh=rg.getSheet();
if((e.value && e.value.length>0)) {//added e.value.length>0
sh.getRange(rg.rowStart, rg.columnStart + 3).setValue(Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth()+1,new Date().getDate(),new Date().getHours(),new Date().getMinutes()),Session.getScriptTimeZone(),"d/MMM/yyyy HH:mm"));
}else{
sh.getRange(rg.rowStart, rg.columnStart + 3).setValue('');
}
if((e.value && e.value=='-')||(e.value && e.value=='--')||(e.value && e.value=='---')) {
sh.getRange(rg.rowStart, rg.columnStart + 3).setValue('');
}
}