Google 电子表格脚本权限错误

Google Spreadsheet Script Permission Error

为什么我不能创建这个脚本?

function setValueTest(value) {  
  SpreadsheetApp
    .getActiveSpreadsheet()
    .getSheetByName('sheet1')
    .getRange('D20')
    .setValue('Hello');

  return(value);
}

错误信息:

Error: Exception, You do not have permission to call setValue (line 11).

但如果我“没有权限”,为什么我可以运行其他脚本?这也定义了值

但如果我这样做我可以(它不能):

function setValueTest(value) {
  return(value);
}

我可以毫无问题地创建这个函数:

function setValueTest(value='five') {  
  SpreadsheetApp
    .getActiveSpreadsheet()
    .getSheetByName('sheet1')
    .getRange('D20')
    .setValue('Hello');
  Logger.log(value);
  return(value);
}

和运行它:

Execution log
2:58:25 PM  Notice  Execution started
2:58:25 PM  Info    five
2:58:26 PM  Notice  Execution completed

我什至 运行 使用这个简单的触发器。只要它访问的电子表格是它绑定的电子表格,它就会 运行。

function onEdit(e) {
  e.source.toast('entry');
  const sh = e.range.getSheet();
  if (sh.getName() == "Sheet0" && e.range.columnStart == 1 && e.range.rowStart == 1 && e.value == "TRUE") {
    e.range.setValue(false);
    e.source.toast('Flag1');
    setValueTest();
  }
}

所以我想我无法用您的代码重现您的问题。