Google sheers:在编辑事件触发器上

时间:2015-06-08 09:00:22

标签: google-apps-script google-sheets editing

我有一个下拉列表(数据验证)单元格,每次用户更改下拉列表时我需要清除几个单元格。我正在使用下面的脚本,没有任何反应。

function onEdit(e){
  if (e) {
     var ss = e.source;
     var s = ss.getActiveSheet();
     var editedCell = ss.getActiveCell();
     var tsheet = "Target";
     if(sname === tsheet && editedCell.getColumn() == 3 && editedCell.getrow() == 5){   
         value = "";
         ss.s.getRange(7,3).setValue(value);
         ss.s.getRange(9,3).setValue(value);
         ss.s.getRange(10,3).setValue(value);
         ss.s.getRange(12,3).setValue(value);
         ss.s.getRange(14,3).setValue(value);
         ss.s.getRange(16,3).setValue(value);      
    }
  }
}

2 个答案:

答案 0 :(得分:0)

你有 self.objects.insert(newDecision, atIndex:0) let indexPath = NSIndexPath(forRow: 0, inSection: 0) 。我想你只想要sname === tsheet运算符,或者如果你只是声明一个新变量,只需在if之外使用常规赋值。你从不使用sname,所以我不太清楚它的用途。此外,您可以使用clear()而不是将单元格设置为空值。如果问题仍然存在,请检查您的触发器是否已在脚本中正确设置(资源 - >当前项目'触发器)。

答案 1 :(得分:0)

替代版本:

function onEdit(e){
 var s = e.source.getActiveSheet();
 if(s.getName() !== "Target" || e.range.getA1Notation() !== 'C5') return;   
 [7, 9, 10, 12, 14, 16].map(function (r) {
 s.getRange("C"+r).clear();
     });
 }