Я не могу понять, как вы можете обрабатывать это автоматически, когда вы вводите значения в python, чтобы триггер onChange
не работал.
Тем не менее вы можете создать основанный на времени триггер и «обрезать»данные в зависимости от частоты ваших входных данных.
Если вам все еще нужно это, как вы просили, вы можете попробовать это, это удалит внутри диапазона, но не всю строку, то есть это не повлияет на другие данные,
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet();
var limit = 50;
var numRows = sheet.getLastRow();
var range = sheet.getRange('A1:B' + numRows + '');
var values = range.getValues();
var numRowsToDelete = 0;
if (numRows > limit){
numRowsToDelete = numRows - limit;
values.splice(0, numRowsToDelete)
for (var i = 0; i < numRowsToDelete; i++)
{
var arr = [];
for (var j = 0; j < values[0].length; j++)
arr.push("");
values.push(arr)
}
range.setValues(values);
}
}
или даже проще, если вы хотите удалить всю строку, которую вы можете сделать
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet();
var numRows = sheet.getLastRow();
var limit = 50;
if (numRows > limit){
var numRowsToDelete = numRows - limit;
//first argument is the start index where you delete so if you
// have a header you can put 2 and add a + 1 to the limit variable
sheet.deleteRows(1, numRowsToDelete);
}
}
СПРАВКА:
времяоснованный триггер