Есть таблица google с заказами, нашел скрипт, которые переносит строки с одного листа на другой если значение в ячейке "Отгружен"
Макрос переноса строк:
let ss = SpreadsheetApp.getActiveSpreadsheet();
let zakaz_2022 = ss.getSheetByName('2022'); //или как нужно лист назвать
let zakazOK_2022 = ss.getSheetByName('Выполнено_2022');
function onEdit(e) {
let cell = e.range;
if (cell.getSheet().getSheetName() === zakaz_2022.getSheetName()){ // проверка на то, что изменение происходит именно на листе со списком заявок
if (cell.getValue() === 'Отгружен'){
zakaz_2022.getRange(cell.getRow(), 1, 1, zakaz_2022.getLastColumn()).copyTo(zakazOK_2022.getRange(zakazOK_2022.getLastRow() + 1, 1)); //перенос на другой лист
zakaz_2022.deleteRow(cell.getRow()); // удаление строки из листа
}
}
}
Был еще у меня такой макрос для автоматической сортировки в этом же файле:
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getSheets()[0].getRange("A2:M");
range.sort({column: 3, ascending: true});
}
Вместе они не работают, а по отдельности все ок... Очень не силен в языке программирования, понимаю интуитивно, подскажите как могу части макросов объединить в один чтобы:
1. Сначала сортировал на листе "2022" по дате заказа (столбец 3)
2. Если значение ячейки "Отгружен" - строка полностью переносится на лист "Выполнено_2022"
3. После того, как строчка будет перенесена на лист "Выполнено_2022" на этом же листе все данные сортировались по дате заказа (столбец 3).
Структура данные на листах "2022" и "Выполнено_2022" одинаковая, т.е. заголовки столбцов полностью совпадают.