Удалить скрипт строк на нескольких листах, даже если на некоторых нет пустых строк - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть скрипт, который удаляет пустые строки в нижней части около 15 листов каждую ночь после того, как работа с таблицей выполняется в течение дня.Я запускаю это потому, что пустые строки остаются внизу очень часто (но не всегда), и это помогает автоматически очищать его, не беспокоясь об этом.Это прекрасно работает, когда пустые строки остаются внизу, но если их нет, а лист заполнен данными полностью вниз, это выдает ошибку и не будет переходить к следующему листу.Я предполагаю, что это связано с

lastRow + 1

, но я не знаю, как изменить его, чтобы он по-прежнему работал правильно.Мой главный вопрос: как я все еще могу запустить этот код как обычно (удаляя пустые строки на перечисленных листах), но если нет пустых строк, он просто переходит на следующий лист вместо того, чтобы вызвать ошибку?

// DELETE EMPTY ROWS AT BOTTOM
function RemoveEmptyRows() {
  var ss = SpreadsheetApp.openById('spreadsheetId');
  var arrayOfSheetTabNames, i, L, sheet;
  arrayOfSheetTabNames = [
    "Sheet1",
    "Sheet2",
    "Sheet3",
    "Sheet4",
    "Sheet5",
    "Sheet6",
    "Sheet7",
    "Sheet8",
    "Sheet9",
    "Sheet10",  
    "Sheet11",
    "Sheet12",
    "Sheet13",
    "Sheet14",
    "Sheet15"   
  ]
  L = arrayOfSheetTabNames.length;
  for (i = 0; i < L; i++) {
    sheet = ss.getSheetByName(arrayOfSheetTabNames[i]);
    var maxRows = sheet.getMaxRows();
    var lastRow = sheet.getLastRow();
    sheet.deleteRows(lastRow + 1, maxRows - lastRow);
  }
};

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 28 февраля 2019
  • Вы хотите удалить все пустые строки ниже диапазона данных для 15 листов.
  • Есть несколько листов, в которых нет пустых строк.

Если я понимаюправильно, как насчет этой модификации?В вашей ситуации, например, как насчет сравнения lastRow с maxRows?

Модифицированный скрипт:

Пожалуйста, измените следующим образом и попробуйте снова.

С:
sheet.deleteRows(lastRow + 1, maxRows - lastRow);
Кому:
if (lastRow < maxRows) {
  sheet.deleteRows(lastRow + 1, maxRows - lastRow);
}

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...