Нет, это не поддерживается.Вы можете получить доступ только к частным функциям, объявленным с помощью function
из Sheets.Чтобы узнать точные ограничения, ознакомьтесь с «Руководством по пользовательским функциям» .
Кроме того, нет постоянных изменений глобальных переменных, поскольку каждый вызов выполняется с «чистого листа», как определено вашим буквальным текстом проекта.,Таким образом, в вашем примере ваш объект "friends" должен быть полностью статичным для использования, или должен быть неглобальным, который создается функцией доступа, например, десериализованный из CacheService
или PropertiesService
, илизагружается из некоторой удаленной конечной точки.
var friends = {
"mike": {
birthday: new Date("..."),
...
},
...
};
function FRIENDINFO(friend, property) {
if (friends[friend]) {
return friends[friend][property];
}
return "No friend named " + friend;
}
Обратите внимание, что использование PropertiesService
, CacheService
или UrlFetchApp
в пользовательской функции может быстро привести к снижению производительности и нарушению квот, если вы не планируете свою функцию длядиапазон ввода и диапазон вывода.
Наконец, даже если вы загружаете данные динамически, ожидается, что результат пользовательской функции является детерминированным, то есть зависит только от аргументов входной функции.Поэтому, даже если ваши внутренние данные обновляются, не требуется обновлять выводимые данные с помощью пользовательской функции.