Ответ:
К сожалению, это невозможно сделать.
Дополнительная информация:
Когда пользовательская функция вызывается в Лист, значение ячейки, возвращаемое функцией - это формула, которая ее вызывает. Возвращаемое значение функции вычисляется при каждом открытии листа, поскольку единственное, что было сохранено, это формула; не данные.
Кроме того, согласно документации , пользовательские функции не поддерживают .set*()
методы SpreadsheetApp
:
Служба электронных таблиц: Только чтение (можно использовать большинство методов get * (), но не устанавливать * ()).
Это означает, что вместо этого невозможно установить значение ячейка напрямую, используя .getRange(cell).setValue(functionimade(params))
, так как область действия пользовательских функций не позволяет вам устанавливать ее напрямую.
Обходной путь:
В конце вашей функции вместо возврата значения вы можете установите содержимое с помощью вышеупомянутого метода .setValue()
, только вам нужно будет указать ячейку в самой функции:
function functionimade(params) {
var myReturnValue = // some cool code here
var cell = 'A1'; // << change this
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(cell)
.setValue(myReturnValue);
}
Надеюсь, это вам пригодится!
Ссылки:
Вопросы по теме: