Разрешение setValue скрипта Google
Я пытаюсь установить некоторое значение для ячейки в электронной таблице Google docs.
function exampleFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range1 = sheet.getRange("A1");
var value1 = range1.getValue();
value1+=1;
range1.setValue(2);
return value1;
}
Если я пытаюсь повлиять на ячейку с помощью этой функции, появляется эта ошибка:
у вас нет разрешения, необходимого для setValue. (линия 10, файл "ddd")
вы знаете, как я мог бы сделать это возможным? Я действительно хочу, чтобы затронутая ячейка принимала значение ячейки A1 и увеличивала значение A1 +1.
спасибо
2 ответов
из документации :
пользовательские функции возвращают значения, но они не могут устанавливать значения вне ячеек, в которых они находятся. В большинстве случаев пользовательская функция в ячейке A1 не может изменять ячейку A5. Однако если пользовательская функция возвращает двойной массив, результаты переполняют ячейку, содержащую функцию, и заполняют ячейки ниже и справа от ячейки, содержащей пользовательскую функцию. Вы можете проверить это с помощью пользовательской функции, содержащей возврата [[1,2],[3,4]];.
похоже, что вы используете вышеуказанную функцию в качестве пользовательской функции, другими словами, она вызывается формулой ячейки в пользовательском интерфейсе Google Sheets следующим образом:
=exampleFunction()
пользовательские функции в Google Таблицах имеют ограничения, как они не могут быть использованы для вызова Google Apps Script services, которые требуют разрешений. Обходной путь-использовать другое средство для вызова функции:
- запустите его из сценария Google Apps Редактор
- использовать пользовательское меню
- использовать триггер
также они могут быть вызваны из диалоговые окна и боковые панели, Google Apps Script Web apps и с помощью Google Apps API выполнения скриптов