【问题标题】:Google Spreadsheet Script Permission Error [duplicate]Google电子表格脚本权限错误[重复]
【发布时间】:2021-12-31 21:46:13
【问题描述】:

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

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

  return(value);
}

错误信息:

错误:异常,您无权调用 setValue(第 11 行)。

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

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

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

【问题讨论】:

  • 自定义函数对吗?
  • 您是否尝试在工作表的单元格(如公式)中使用该函数?是这样的,那么这就解释了为什么你会收到错误。
  • 是的,这是一个自定义函数,我正在尝试在单元格中使用它。

标签: google-apps-script google-sheets exception permissions custom-function


【解决方案1】:

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

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();
  }
}

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

【讨论】:

  • 还是不行……我去看看。
  • 也许您应该尝试切换到另一个容器并重新创建脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多