Получение сообщения об ошибке TypeError: Невозможно вызвать метод "getSheetByName" со значением null в ранее работающих системах - PullRequest
0 голосов
/ 07 июня 2018

У меня есть несколько разных систем, которые используют следующий код для доступа к базовым электронным таблицам.

 var mainLinks = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");

Они работали в течение 6 месяцев, но сейчас я получаю сообщение об ошибке ниже со ссылкой на приведенное выше.line.

 TypeError: Cannot call method "getSheetByName" of null.

Был ли изменен этот метод?Любые предложения о том, как это исправить?Спасибо !!

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Я не знаю этого SpreadsheetApp, но в сообщении говорится, что метод getActiveSpreadsheet, где используется метод getSheetByName, имеет значение null.

В зависимости от имени метода SpreadsheetApp не включен.Возможно, срок его действия истек или что-то в этом роде.

0 голосов
/ 07 июня 2018

Ничего не изменилось.У вас нет активной электронной таблицы.В соответствии с документацией для SpreadsheetApp.getActiveSpreadsheet

Возвращает текущую активную электронную таблицу или ноль, если ее нет.

Итак, SpreadsheetApp.getActiveSpreadsheet()возвращает null, поскольку в данный момент у вас нет активной электронной таблицы, затем вы пытаетесь вызвать метод с нулевым значением и получите ожидаемую ошибку ...

Невозможно вызвать метод "getSheetByName" с нулевым значением.

Простое исправление, позволяющее избежать ошибки, состоит в проверке null следующим образом

 var mainLinks;
 var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 if (activeSpreadsheet !== null) {
     mainLinks = activeSpreadsheet.getSheetByName("Main");
 } else {
     // handle case where there is no active spreadsheet
 }

Существует множество причин, по которым у вас может не быть активной электронной таблицы, и мы не можемрасскажите без дополнительной информации, но вы можете попробовать ...

sheet = SpreadsheetApp.openById(**your spreadsheet key**).getActiveSheet()

Чтобы найти ключ электронной таблицы, откройте электронную таблицу и посмотрите на адресную строку браузера: ключ - это бит между key= и первымне буквенно-цифровой символ, обычно & или #, как в #gid или &pli=1.

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