Google 表格脚本 - 特定表格上 运行 更简洁的代码

Google Sheets Script - More concise code to run on specific sheets

我只希望脚本 运行 在工作表 'Trip 1' 到 'Trip 3' 上。

这是我正在使用的脚本:

SORT_DATA_RANGE = "A4:K";
SORT_ORDER = [
{column: 2, ascending: false},  // 3 = column number, sorting by descending order
{column: 6, ascending: true}, // 1 = column number, sort by ascending order 
{column: 7, ascending: true},
{column: 8, ascending: true},
];

function onEdit(event){
   var editedRange= event.range;
   var editedSheet= editedRange.getSheet()

  if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 1")
  { 
   var range = editedSheet.getRange(SORT_DATA_RANGE);
    range.sort(SORT_ORDER);
  }

  else if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 2")
  { 
    var range = editedSheet.getRange(SORT_DATA_RANGE);
    range.sort(SORT_ORDER);
  }

  else if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 3")
  {  
    var range = editedSheet.getRange(SORT_DATA_RANGE);
    range.sort(SORT_ORDER);
  }

}

您可以定义一个常量 - 一个数组,其中包含您要应用排序的 sheet 的名称 SORT_ON_SHEETS = ['Trip 1','Trip 2','Trip 3']

然后在 onEdit() 函数中,检查此 array includes 是否是事件发生的 sheet 的名称

function onEdit(event){
   var editedRange= event.range;
   var editedSheet= editedRange.getSheet()

  if (editedRange.getColumn() == 2 && SORT_ON_SHEETS.includes(editedSheet.getName())){
    var range = editedSheet.getRange(SORT_DATA_RANGE);
    range.sort(SORT_ORDER);
  }
} 

尝试

function onEdit(event){
   var editedRange= event.range;
   var editedSheet= editedRange.getSheet()    
   if(editedRange.getColumn() == 2 && (editedSheet.getName() == "Trip 1" || "Trip 2" || "Trip 3")){ 
   var range = editedSheet.getRange(SORT_DATA_RANGE);
   range.sort(SORT_ORDER);
  }    
}