Я использую сценарий, чтобы сначала скопировать список всех прекращенных продуктов с вкладки «данные» листа на «прекращенную вкладку»
Вкладка данных выглядит следующим образом
Код проверяет, написана ли дата окончания
если это так - строка копируется и вставляется во вкладку «прекращено»
После завершения всех строк (около 2000)
код удаляет все строки на вкладке "данные", в которых указана дата окончания
Но код не очень эффективен, а данные огромны - я получаю сообщение об ошибке «Превышено максимальное время выполнения»
function movingTerms() {
var app = SpreadsheetApp ;
var sheet1 = app.getActiveSpreadsheet().getSheetByName("data") ;
var sheet3 = app.getActiveSpreadsheet().getSheetByName("Terminations");
var range1 = sheet1.getRange(2, 1, sheet1.getLastRow() - 1,9);
var range3 = sheet3.getRange(2, 1, sheet3.getLastRow(), 9);
var values1 = range1.getValues();
var values3 = range3.getValues();
var rowcount = sheet1.getLastRow();
var row_deleted = 0;
for (var i = 0; i < (sheet1.getLastRow() - 1); i++)
{
if (values1[i][4] !== "")
{
var rowtodelete = sheet1.getRange(i + 2, 1, 1, 10);
var rowtoadd = sheet3.getRange(sheet3.getLastRow() + 1, 1);
rowtodelete.copyTo(rowtoadd);
}
}
for (var k = 0; k < values1.length; k++)
{
var row = k + 1 - row_deleted;
if (values1[k][4] !== "")
{
var getridof = row +1;
sheet1.deleteRow(getridof);
row_deleted++;
}
}
}