Как выполнить сортировку заданной области на всех листах гугл-таблиц?
Есть рабочий скрипт для сортировки строк фиксированной области по заданному столбцу:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getSheets()[0].getRange("C9:X24"); // диапозон сортировки
range.sort({column: 7, ascending: false}); // сортировать по убыванию
}
Он работает на одном листе. Как сделать так, чтобы он работал на всех листах с одним и тем же диапазоном строк и колонкой сортировки?
Ответы (1 шт):
Автор решения: Vitalizzare
→ Ссылка
У вас уже все есть, осталось добавить один из вариантов обхода страниц. Например:
function myFunction() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var sort_rng = "C9:X24";
var sort_col = 7;
var sort_asc = false;
for (i=0; i<sheets.length; i++) {
range = sheets[i].getRange(sort_rng);
range.sort({column: sort_col, ascending: sort_asc});
}
}
Или чуть более прямолинейно:
function myFunction() {
SpreadsheetApp
.getActiveSpreadsheet()
.getSheets()
.forEach(sh => sh.getRange("C9:X24").sort({column: 7, ascending: false}));
}