перенос строки в гугл таблицах

ранее на этой форуме был найден вот такой скрипт (ниже в тексте) , который переносит строку на лист2 из листа1, после того как поставить галочку в столбце "А" листа1. У меня же есть таблица длиной примерно 300-500 строк ( кол-во строк изменяется в зависимости от месяца) и в конце таблицы идет другая таблица которая называется "ОТГРУЖЕННЫЕ ПРОЕКТЫ". Так вот мне нужно в основной таблице в столбце "W" тоже чтобы проставлялись в квадратах галочки в соответствующей строке и чтобы вся строка переносилась в таблицу "ОТГРУЖЕННЫЕ ПРОЕКТЫ" и все это на одном листе.

Код почему то вставить не могу. Прилагаю ссылку Как в Гугл Таблице настроить автоматическое копирование строки по условию на другой лист и удаление после копирования на исходном листе?


Ответы (1 шт):

Автор решения: Марина

Не вижу сложностей (использовала код из ссылки и немного доработала):

function onEdit(e) {
  Logger.log(e);
  Logger.log(e.value);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetS = ss.getSheets()[0];
  //var sheetD = ss.getSheets()[1];
  var lastColumn = sheetS.getLastColumn();
  var lastRow = sheetD.getLastRow();
  if (e.value === 'TRUE') {
    
    var range = e.range;
    var row = range.getRow();
    Logger.log(row);
    var val = sheetS.getRange(row, 1, 1, lastColumn).getValues();
    sheetS.getRange(212, 1, 1, lastColumn).setValues(val);
    sheetS.deleteRow(row);
  }
}

212 постоянная строка, с которой начинается ваша нижняя часть. При удалении строки из верхней части, строка 212 снова будет пустой. var sheetD = ss.getSheets()[1]; вообще убрала, строку sheetD.getRange(lastRow+1, 1, 1, lastColumn).setValues(val); заменила на sheetS.getRange(212, 1, 1, lastColumn).setValues(val);

→ Ссылка