0

我的电子表格中有可安装的触发器,但是当我编辑工作表时,触发器没有被触发

可安装的触发器屏幕截图

之前是我的触发器很好,我已经删除并添加了新触发器但仍然没有触发。

项目详情截图


---已编辑---

这是我对每个触发器的配置

newRow 函数触发配置

triggerpls 函数触发配置


这是我要运行的代码

function triggerpls() {
  Utilities.sleep(2000);
  console.log("triggered");
}

function newRow(e) {
  
  var ROW_MODIFIED = ["INSERT_ROW"];
  if(ROW_MODIFIED.indexOf(e.changeType) == -1) return;
  
  var sheet = SpreadsheetApp.getActiveSheet();
  var currentCell = sheet.getCurrentCell();
 
  var maxRows = sheet.getMaxRows();
  
  
  var range = sheet.getRange(2, 1, maxRows);
  
  
  var values = range.getValues();
  
  var higher = Number(values.sort(function(a,b){return b-a})[0]);
  currentCell.setValue(higher + 1);
  

}
4

1 回答 1

1

尝试这个:

onChange() 事件仅适用于用户编辑。当脚本或单元格函数进行编辑时,它不起作用。

function newRow(e) {
  e.source.toast('Entry');
  Logger.log(JSON.stringify(e));
  var sh=e.source.getActiveSheet();
  if(sh.getName()=='Sheet2' && e.changeType=='INSERT_ROW') {
    var v=sh.getRange(2,1,sh.getLastRow(),1).getValues().map(function(r,i){return r[0];}).filter(function(e){return e;});
    var h=Number(v.sort(function(a,b){return b-a})[0]);
    sh.getCurrentCell().setValue(h+1);
  }
}
于 2020-02-03T19:32:51.190 回答