getSheetByName не работает с setActiveSpreadsheet, но работает с getActiveSpreadsheet в Google App Script - PullRequest
0 голосов
/ 05 августа 2020

У меня есть этот код. Кажется, он не работает с setActiveSpreadsheet

var ss = SpreadsheetApp.openById('Id')
var booleanRange = SpreadsheetApp.setActiveSpreadsheet(ss).getSheetByName("Sheet1")

, но работает с getActiveSpreadsheet

var booleanRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")

Ошибка

TypeError: Cannot read property 'getSheetByName' of null (line 4, file "Code")

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

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

Вместо этого попробуйте

var ss = SpreadsheetApp.openById('Id')
var booleanRange = ss.getSheetByName("Sheet1")
1 голос
/ 05 августа 2020

SpreadsheetApp.setActiveSpreadsheet(ss) - это функция void , что означает, что она не предоставляет значение результата вызывающей стороне (см. Прикрепленное изображение). Поэтому вы не можете применить к нему метод.

Вы можете запустить его только таким образом, и он установит электронную таблицу ss в качестве активной электронной таблицы:

SpreadsheetApp.setActiveSpreadsheet(ss);

Further explanation

References:

setActiveSpreadsheet ()

...