谷歌工作表上的自动排序脚本onChange触发器

时间:2017-08-05 08:47:55

标签: javascript sorting

任何人都可以帮助我,它是关于谷歌表的自动排序脚本吗?我实际上并不熟悉脚本,但我想要做的是自动对表格范围内A列上输入的日期进行排序。我在下面找到了一个通用脚本,我在google工作表上尝试过,它实际上适用于同一工作表上的手动编辑。 但是,我的表格范围内的值是来自另一个工作表的my(索引,匹配)公式的结果,因此每当从另一个工作表输入新值时,它将不会自动排序。

这是我在google工作表上尝试的示例脚本:

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

  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 1;
  var tableRange = "A2:J61"; // What to sort.
  if(editedCell.getColumn() == columnToSortBy){   
    var range = sheet.getRange(tableRange);
    range.sort( { column : columnToSortBy, ascending: true});
  }
}

任何人都可以指导我修改此脚本,请...

以下是我试图处理的google表格示例链接:

https://docs.google.com/a/alarmpromotions.org/spreadsheets/d/1IHPwNpAklt_5R6OyxTHMxMbXKkT4WsPBk20saUPbxgw/edit?usp=sharing

1 个答案:

答案 0 :(得分:0)

Try this onEdit with the auxiliary function to update first sheet when this is triggered for the second sheet.

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

  var columnToSortBy = 1;
  var tableRange = "A2:J61"; // What to sort.

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

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    if(ss.getSheets()[1] == sheet ){
       sortFirstSheet();
    }
  }
}


function sortFirstSheet(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);

  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A2:J61");
  range.sort( { column : columnToSortBy, ascending: true});
}

Take a look at these APIs