Внезапно получаю сообщение об ошибке в Google Sheets от этой функции, которая существовала годами. Они что-то изменили в последнее время? - PullRequest
0 голосов
/ 13 ноября 2018

Некоторое время назад я написал функцию, чтобы определить, существует ли лист в рабочей книге.Вот функция:

function SheetNameExists(name){
  return (ActiveSpreadSheet().getSheetByName(name).toString().indexOf(name) != 0);
}

Внезапно в течение последнего месяца или около того я получаю TypeError: Cannot call method "toString" of null. (line 105, file "Code").Строка 105 - это оператор return.

До тех пор, пока эта ошибка не начала возникать, у меня не было проблем ни с одним из сценариев на этом Листе.Я ничего не изменил в коде позади.

Изменил ли Google что-то без поддержки устаревания?


РЕДАКТИРОВАТЬ: я забыл ActiveSpreadsheet() не была встроенной функциейкогда я написал все это.Вот код, который я написал, чтобы получить его:

function ActiveSpreadSheet(){
  return SpreadsheetApp.getActiveSpreadsheet();
}

1 Ответ

0 голосов
/ 13 ноября 2018

Я спрашиваю, как это могло сработать раньше.getSheetByName (name) вернет объект Sheet.toString () просто возвращает строку «Лист».Таким образом, он будет соответствовать имени, только если имя «Лист».Однако ваша проблема довольно проста.

var active = SpreadsheetApp.getActiveSpreadsheet();  // For sure the active spreadsheet
var sheet = active.getSheetByName(name);  // Where name is a string representing a sheet name
if( sheet ) return true;  // Sheet with name exists
return false;  // Other wise sheet is null or does not exist
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...