每次提交表单时使用触发器对 sheet 进行排序

Use a trigger to sort a sheet every time a form is submitted

我正在尝试让 Google Sheet 在提交表单时自动排序。我已经能够将脚本设置为按以下顺序排序,但它仅在手动编辑电子表格时有效(而不是在新数据来自表单时)。

function onEdit(event){
  var sheet = event.source.getActiveSheet();
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 6;
  var tableRange = "A2:F100";

  if(editedCell.getColumn() == columnToSortBy){
  var tableRange = "A2:F100";

 if(editedCell.getColumn() == columnToSortBy){
 var range = sheet.getRange(tableRange);
    range.sort( { column : columnToSortBy } );
  }
}

我需要设置一个触发器,以便在提交表单时执行此操作。我在 Google 开发人员上找到了这个,但我不确定在下面使用什么作为 ("myFunction"):

var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("myFunction")
 .forSpreadsheet(sheet)
.onFormSubmit()
 .create();

表单提交不是编辑,所以onEdit触发器在这里没有用。相反,使用以下带有可安装触发器的简单函数 On Form Submission。手动设置触发器很容易:在脚本编辑器中,转到资源 > 当前项目的触发器,然后添加:

函数:

function sortSheet() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var columnToSortBy = 6;
  var headers = 1;   // number of header rows, usually 1
  var range = sheet.getRange(headers + 1, 1, sheet.getLastRow() - headers, sheet.getLastColumn());
  range.sort( { column : columnToSortBy } );
}