Код, который будет автоматически сортировать один из моих листов на редакторе - PullRequest
0 голосов
/ 02 января 2019

У меня есть лист с 3 столбцами: координатор, работник, оценка.

Я хочу автоматически отсортировать только один лист (работник, набравший наибольшее количество баллов).

Я использовал autotrigger (без оператора if), но он работал на всех листах, и я не знаю, как ограничить его одним листом.

function Sortowanie() {
  if(SpreadsheetApp.getActiveSpreadsheet().getName() == 'Name of sheet'){
   var spreadsheet = SpreadsheetApp.getActive();
   spreadsheet.getRange('A1:C35').activate();
   spreadsheet.getActiveRange().offset(1, 0, 
   spreadsheet.getActiveRange().getNumRows() - 1).sort({column: 3, ascending: 
   false});
    spreadsheet.getRange('E9').activate();
  }
}

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Было бы проще понять, могли бы вы поделиться своей таблицей.Но я думаю, что это близко

0 голосов
/ 03 января 2019

Объяснение

Пожалуйста, смотрите комментарии в коде.

function Sortowanie() {

    if (SpreadsheetApp.getActiveSpreadsheet().getName() == 'Name of sheet') {
    // This line is looking at the name of the spreadsheet, not the name of the sheet
    // Use the line below instead

    // if (SpreadsheetApp.getActive().getActiveSheet().getName() == 'Name of sheet') {

        var spreadsheet = SpreadsheetApp.getActive();
        spreadsheet.getRange('A1:C35').activate();
        // You either need to include the name of the sheet when calling getRange
        // from the Spreadsheet: getRange('Sheet1!A1:C35')
        // Or you need to call getRange from the Sheet:

        /*
        var sheet = SpreadsheetApp.getActive().getActiveSheet();
        sheet.getRange('A1:C35'),activate();
        etc.
        */

        spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1)
          .sort({column: 3, ascending: false});
        spreadsheet.getRange('E9').activate();
    }
}

Минимальный рабочий код

Я не уверен, почему вы получаете диапазон изатем смещение, когда вы можете просто получить диапазон смещения для начала.

function sort() {

    var spreadsheet = SpreadsheetApp.getActive();
    var sheet = spreadsheet.getActiveSheet();
    var sheetName = sheet.getName();

    if (sheetName === 'Name of sheet') {

        var range = sheet.getRange('A2:C34');

        range.sort({column: 3, ascending: false});
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...