编辑无效的自动编排

时间:2018-04-20 19:35:59

标签: google-apps-script

我有一份由我们组织的4个团队游戏的列表(Google表格)和一个参与者列表。我得到了一些自动排序的工作 - 但它只适用于第一列。这是脚本

/**
 * Automatically sorts the 1st column (not the header row) Descending.
 */
function onEdit(){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var editedCell = sh.getActiveRange().getColumnIndex();

  if(editedCell == 2) { 
    var range = sh.getRange("A2:B100");
    range.sort({column: 2, ascending: false });
  }
}

linked my test goog sheet here...its editable

我需要能够在所有8列(每个2列的4个数据集)上执行简单AutoSort的操作,如下所示:

这些是4个独立的团队(为了将它们分开,我将它们染成了它们 - 它们彼此没有任何关系 - 所以只有Col A和B相关,那么Col C& D是相关的,同样所以Col A& B是第一支队伍; Col C& D是第二个游戏团队(完全独立于游戏1)和Col E& F是第3个游戏团队(完全独立于Game1& 2)

所有该表需要Autosort是: 任何时候进行编辑都是shd。第一种是在Col A上降,然后是Ascending Col B;同样在Col C上降,然后升入Col D;同样在Col E上降,然后升入Col F;同样在Col G上降,然后升入Col H. 而且它很震撼。忽略任何空白单元格......

所有4个团队只是为了格式化和打印而放在一起,但需要单独排序。

1 个答案:

答案 0 :(得分:1)

对列中的列进行排序

如果您想要更改数字列,这可能会更容易一些。只需更改它们并确保您有一个偶数。它们将对偶数列和左侧列进行排序。

function onEdit(e){
  sortNColumns(e);
}

function sortNColumns(e){
  var sh=e.range.getSheet();
  var col=e.range.getColumn();
  if(col<=sh.getLastColumn() && col%2==0){//less than or equal to the last column and even.  You could just go with col%2==0 if you want it works too
    sh.getRange(2,col-1,sh.getLastRow()-1,2).sort({column:col,ascending:false});
  }
}