选择某个下拉列表的值时清除单元格

时间:2019-02-12 18:12:48

标签: google-apps-script google-sheets

我需要修复脚本“代码”,以便从下拉列表中选择“-”,“-”或“ ---”值时,将清除脚本控制的单元格。

这是Google表格的链接:

this answer

代码:

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('');
  }
}

1 个答案:

答案 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('');
  }
}