Мне нужно переместить строки из ожидающего листа в архивный лист в зависимости от цвета фона. Я нашел сценарий и смог отредактировать его, чтобы приспособить к моим потребностям, за исключением нескольких вещей, которые я не могу понять (я не знаю, как кодировать, за исключением некоторых школьных материалов basi c). Я работал над следующим:
function onEdit(event) {
// assumes source data in sheet named Pendientes
// target sheet of copy to named Enviados
// getColumn with color is currently set to colu 3 or C
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Pendientes" && r.getColumn() == 3 && r.getBackground() == "#00ff00") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Enviados");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target, {contentsOnly:true});
s.deleteRow(row);
targetSheet.getRange(targetSheet.getLastRow(), 7).setValue(new Date()).setNumberFormat("dd-mm-yy");
targetSheet.insertRowAfter(targetSheet.getLastRow())
}
}
То, что я не могу понять:
Первоначально скрипт запускается, когда вы редактируете содержимое ячейки (цвет фона не учитывается, взял мне нужно время, чтобы выяснить, почему это не работает) и переместил строки, когда значение изменилось с false на true.
Я бы хотел изменить триггер на пользовательское меню, которое я создал, поэтому, когда вы щелкнув по нему, он просматривает все строки, находит ячейки с зеленым фоном и перемещает их в архив. Поскольку исходный сценарий использует событие, которое запускает сценарий каждый раз, когда выполняется редактирование, и анализирует этот единственный момент, я не уверен, как это сделать.
Я также хотел бы, если возможно, чтобы ячейки передавались в порядке, основанном в столбце 2, поэтому сначала он ищет зеленые ячейки в столбце 3 с помощью OptionA в столбце 2 и перемещает их, затем с помощью OptionB и так далее.
Я также не уверен, что строка, которую я добавил для вставки 1 строки для каждой перемещенной строки, будет работать при массовом перемещении строк, то есть, если она перемещает 10 строк, она вставит 10 новых строк или 1 отдельную строку.
Я сделал образец листа, в котором экспериментировал:
https://docs.google.com/spreadsheets/d/1tzGnuT107u1msx6BchZAEHE7NbsxIVcqXasGilQeTbA/edit?usp=sharing
Спасибо!