Заменить
var range = returnSheet.getRange(rrCell);
С
var range = returnSheet.getRange(i, 1, 1, returnSheet.getMaxColumns());
// getRange(startRow, startColumn, numberOfRows, numberOfColumns)
Вот как бы я написал вашу функцию.
Таким образом, есть только несколько вызовов в таблицу вместо нескольких для каждой строки. :)
function Remove() {
var sheet = SpreadsheetApp.getActive().getSheetByName('xxx');
var rangeList = [];
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
if (data[i][3] == 'book') {
// Arrays are zero-based. The first element is
// element 0, the second is element 1, etc.
// D is the fourth column, therefore it's element 3.
rangeList.push('A' + i + ':Z' + i);
// Change Z to your last column
}
}
sheet.getRangeList(rangeList).clearContent();
}
Ссылки
getRange ()
getRangeList ()
RangeList
Массив
Пакетные операции