Замораживание строк в листах с помощью Служб Google приводит к ошибке типа - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь использовать ГАЗ, чтобы заморозить верхний ряд каждого листа.Работает, замораживает нужные строки, но возвращает ошибку:

«TypeError: невозможно вызвать метод setFrozenRows» из неопределенного (line6, файл «freezeLabelRows»)

Согласнов документации Google синтаксис правильный.Я запускаю скрипт из редактора кода, прикрепленного к листу, где я разрабатываю приложение.Я пробовал число (1), где сейчас numRowsFr;это был обходной путь, который я использовал, чтобы избежать этой ошибки.

function rowFreeze() {
  var numSheets = SpreadsheetApp.getActiveSpreadsheet().getNumSheets();
   for(var i = 0; i <= numSheets; i++) {
     var frSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[i];
     var numRowsFr = 1;
     frSheet.setFrozenRows(numRowsFr);
   }
}

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

1 Ответ

4 голосов
/ 15 июня 2019

Проблема:

  • Индекс массива начинается с 0 и заканчивается длиной массива -1.Вы выполняете цикл после конца массива (массива листов), когда используете <=numSheets в качестве условия цикла.После последнего листа frsheet будет неопределенным, а undefined не будет иметь метода setFrozenRows, поскольку это не тип листа.

Решение:

  • Цикл только до конца массива.

Фрагмент:

i <= numSheets - 1;

или

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