【问题标题】:Google sheet sorting a specific sheet谷歌工作表对特定工作表进行排序
【发布时间】:2018-07-13 15:32:51
【问题描述】:

表 1 = SVerB-leden

第 1 列需要自动排序

表 2= Verjaardag

第 2 列需要自动排序。

我找到了一个脚本,它可以在编辑时自动按字母顺序对给定列进行排序。但是,我希望在第一列上排序一张纸,在第二列上排序另一张纸。

我找到的脚本适用于所有工作表。 是否有可能以一种可行的方式改变它?

 /**
 * Automatically sorts the 1st column (not the header row) Ascending.
 */
function onEdit(event){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 6;
  var tableRange = "B2:V500"; // What to sort.

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

【问题讨论】:

    标签: google-apps-script scripting google-sheets


    【解决方案1】:

    试试这个:

    function onEdit(event){
      var sheet = SpreadsheetApp.getActiveSpreadsheet();
      var editedCell = sheet.getActiveCell();
      var rngEdited = event.range;
      var sheetBeingEdited = rngEdited.getSheet().getName();
      Logger.log('rngEdited: ' + rngEdited);
      Logger.log('sheetBeingEdited: ' + sheetBeingEdited);
    
      var colEdited = editedCell.getColumn();
      var columnToSortBy;
      var tableRange;
    
      if (sheetBeingEdited === 'SVerB-leden') {
        columnToSortBy = 1;
        tableRange = "B2:V500"; // What to sort.
        if (colEdited === columnToSortBy) {
          sortColumn(columnToSortBy, tableRange, sheet);
        };
      } else if (sheetBeingEdited === 'Verjaardag') {
        columnToSortBy = 2;
        tableRange = "B2:V500"; // What to sort.
        if (colEdited === columnToSortBy) {
          sortColumn(columnToSortBy, tableRange, sheet);
        };
      };  
    };
    
    function sortColumn(colNmbr, rngToSort, sh) {
      var range = sh.getRange(rngToSort);
      range.sort( { column : colNmbr, ascending: true } );
    };
    

    【讨论】:

    • 我是从使用 dBase III 和 Clipper 开始的,所以我需要这个帮助并应用它.. :-)。我在 var rngEdited = event.range; 上收到错误
    • 如果您从代码编辑器运行代码来测试它,event 对象将为空。 event 对象仅在您实际编辑工作表时传入。
    【解决方案2】:

    这个子在我所有的项目中都有效

    function AutoSortOnEdit() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
        ss.sort(1, false);   // Sorting by 1st column, change to 2 for the second //
      });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 2014-08-13
      • 1970-01-01
      相关资源
      最近更新 更多