У меня есть скрипт в Google Apps Script, скрипт работает нормально, но я продолжаю получать
Извините, невозможно удалить все строки без застывших строк 70
Вот соответствующая часть кода:
//start delete rows
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i+1 <= numRows - 1; i++) {
var row = values[i+1];
if (row > '') { // This searches all cells in columns A (change to row[1] for columns B and so on)
and deletes row if cell is empty or has value 'delete'.
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
};
//end delete rows
function onOpen() {
var menu = [
{ name: "? Help and Support »", functionName: "help"},
null,
{ name: "Step 1: Authorize", functionName: "init" },
{ name: "Step 2: Schedule Reports", functionName: "configure" },
null,
{ name: "? Uninstall (Stop)", functionName: "reset" },
null
];
SpreadsheetApp.getActiveSpreadsheet()
.addMenu("? Drive Activity Report", menu);
}
function help() {
var html = HtmlService.createHtmlOutputFromFile('help')
.setTitle("Google Scripts Support")
.setWidth(400)
.setHeight(160);
var ss = SpreadsheetApp.getActive();
ss.show(html);
}
Я добавил картинку, у меня не осталось ни одной строки, так как все они удалены после отправки писем, все это работает, кроме что я получаю ежедневный отчет о не замороженных строках. Возможно, отчет жаловался, потому что последняя строка пуста и не может быть заморожена или удалена? изображение электронной таблицы в соответствии с запросом
Я включаю копию отчета об ошибках, который я получаю каждый день, относительно не замороженных строк, как указано в моем последнем комментарии, нет ошибок ни в одном из сценарий регистрирует. изображение ежедневного отчета по не замороженным строкам
Ответ, как представляется, заключается в том, что строки должны быть заморожены перед удалением, я добавил код замораживания, но я не уверен если это сейчас правильно
//start delete rows
function deleteRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var numRowsFr = 1;
sheet.setFrozenRows(numRowsFr);
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[0] == 'delete' || row[0] == '') { // This searches all cells in columns A (change to row[1] for columns B and so on) and deletes row if cell is empty or has value 'delete'.
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
//end delete rows