В вашем случае, я думаю, что когда maxRows-lastRow
равно 0 или меньше 0, такая ошибка возникает. Поэтому, пожалуйста, подтвердите, есть ли значения в нижней строке листа. Если в нижней строке листа нет значений, можете ли вы предоставить образец электронной таблицы для воспроизведения вашей проблемы? Я хотел бы подтвердить это.
Как точка модификации, позволяющая избежать ошибки, как насчет следующей модификации?
От:
sh.deleteRows(lastRow+1, maxRows-lastRow);
Кому:
if (maxRows-lastRow > 0) {
sh.deleteRows(lastRow+1, maxRows-lastRow);
}
Другой шаблон:
Или как насчет удаления пустых строк с использованием области данных из 1-й строки следующим образом?
function removeEmptyRows(){
var sh = SpreadsheetApp.getActiveSheet();
var lastRowOfDataRegion = sh.getRange("1:1").getDataRegion(SpreadsheetApp.Dimension.ROWS).getLastRow();
var maxRows = sh.getMaxRows();
if (maxRows-lastRowOfDataRegion > 0) {
sh.deleteRows(lastRowOfDataRegion+1, maxRows-lastRowOfDataRegion);
}
}
Ссылка:
Если я неправильно понял ваш вопрос, прошу прощения.