Я пытаюсь автоматизировать лист для сортировки строк по дате и переноса строк, когда установлен флажок. Я понял часть переноса, но функция сортировки работает только на вкладках, от которых я избавляюсь, а не на вкладках, которые я держу, и я не понимаю, почему.
Вот параФункции сортировки, которые работают, но не на вкладках, с которыми мне нужно работать:
function onEdit(event) {
// assumes source data in sheet named Active
// target sheet of move to named Completed
// getColumn with check-boxes is currently set to colu 8 or H
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
//sort Active by oldest date at the top, using column D or 4
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 4;
var tableRange = "A2:T99"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
}
}
А:
function myFunction()
{
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Active");
var rows = sheet.getLastRow();
var columns = sheet.getLastColumn();
var sortedValues = sheet.getRange(2, 1, rows-1, columns).getValues().sort();
sheet.getRange(2, 1, rows-1, columns).setValues(sortedValues);
}
Сортировка работает на вкладках с именами на них, но не на вкладках с именами Активные и Завершенные. С помощью автоматизации я избавляюсь от названных вкладок, и у нас будут только Active и Complete.
Я удалил передачу после завершения функции, так как она работала просто отлично, и я просто фокусируюсьна сортировку, так как кажется, что это проблема.
Есть предложения, почему две вкладки не сортируются? Вот копия таблицы, над которой я работаю: https://docs.google.com/spreadsheets/d/17VeCzfqAclxUN-kVIrWZSII-7clsNfttmVVU8s0JhFs/edit?usp=sharing
РЕДАКТИРОВАТЬ: решено Купером ниже. Финальная версия кода, которая работала для моих нужд:
function onEdit(event) {
var sh=SpreadsheetApp.getActive().getSheetByName("Active");
sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).sort({column:4,ascending:true});
}