Разрешение 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 Script Web apps и с помощью Google Apps API выполнения скриптов