Google Script разрешение setValue
Я пытаюсь установить какое-либо значение в ячейку в электронной таблице документов Google.
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, файл "Ддд" )
Вы знаете, как я мог сделать это возможным? Я действительно хочу, чтобы затронутая ячейка приняла значение ячейки A1 и увеличила значение A1 +1.
Спасибо
Ответы
Ответ 1
из документации:
Пользовательские функции возвращают значения, но они не могут устанавливать значения вне тех ячеек, в которых они находятся. В большинстве случаев пользовательская функция в ячейке A1 не может изменять ячейку A5. Однако, если пользовательская функция возвращает двойной массив, результаты переполняют ячейку, содержащую эту функцию, и заполняют ячейки ниже и справа от ячейки, содержащей пользовательскую функцию. Вы можете проверить это с помощью специальной функции, содержащей return [[1,2], [3,4]];.
ссылка: Пользовательские функции в таблицах
Ответ 2
Похоже, что вы используете указанную выше функцию как пользовательскую функцию, другими словами, она вызывается формулой ячейки в пользовательском интерфейсе Google Таблиц следующим образом:
=exampleFunction()
Пользовательские функции в Google Таблицах имеют ограничения, так как они не могут использоваться для вызова служб Google Apps Script, требующих разрешений. Обходным путем является использование другого значения для вызова функции:
Также они могут быть вызваны из диалогов и боковых панелей, Google Приложения Script Веб-приложения и с помощью API Google Apps Script