我希望onFormSubmit(e)是我的主要功能触发器,并希望在其中嵌套onEdit(e)。基本上,无论如何,触发器将运行onFormSubmit,但如果有任何编辑,它将在onEdit内执行其他操作,如果没有编辑,则它将执行其他操作。

我看不到了解并使其正常工作。

我的脚本触发器将onFormSubmit显示为唯一函数,而onEdit不在下拉列表中。

function onFormSubmit(e){
    ScriptApp.newTrigger("onEdit").timeBased().after(60000).create();
  function onEdit(e){
    var ss = SpreadsheetApp.getActiveSpreadsheet().getRange('SpeedVSD');
    var sheet = ss.getSheetByName("Responses 1");
    var row = ss.range.getRow();
    var col = ss.range.getColumn();

    if (col >= ss.getColumn() && col <= ss.getLastColumn() && row >= ss.getRow() && row <= ss.getLastRow()){
      console.log("You edited a Cell within Range");

    }

  }


编辑:设法获得我的lastRow值。但是,我仍在寻找一个可以为所有列获取lastRow值的命令,而不是手动执行。

编辑:使用FOR循环有助于整理值。

//This is to get the Last Row on Column 2 value.
var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheetByName('FIRST');

  var row = sheets.getLastRow();
  for(var i = 1; i <= sheets.getLastColumn(); i++){
  var myID = sheets.getRange(row, i).getValue();
  }

  console.log("Row Number: "+row);
  console.log("Content of last Row: "+myID);```


最佳答案

如果希望onEdit()始终运行,则只需将其创建为单独的函数即可。那么您可以从onFormSubmit()调用它,如下所示:

function onFormSubmit(e){
   //does something you need...
   onEdit();
}
onEdit(e){
   //do the onEdit code...
}


唯一的问题是e的事件onFormSubmit()onEdit()的事件不同,因此处理事件可能不是最好的主意。但是,从另一个函数中调用一个函数就像其他任何函数一样会很有趣。

09-16 18:32