Google 脚本找不到 getRange 也没有 运行 的权限

Google script cannot find getRange nor does it have permission to run

我正在尝试 Google sheet 从另一个 sheet 获取精算数据;另一个 sheet 本质上充当查找 table。代码(删除了 spreadsheet id):

function deathProb(age,sex) {
    return SpreadsheetApp.openById("<spreadsheet id>").getActiveSheet().getRange(age,sex,1,1).getValue();
};

应该很简单,今年早些时候还可以用,但是大约一个月前就停止了,现在调试的时候报错:

Cannot find method getRange((class),(class),number,number). (line 3, file "").

在sheet 本身,它给出了错误"You do not have permission to perform that action (line 3)"。

如果我将代码更改为“...getRange(5,5,1,1)...”,这样它就不会使用变量 "age" 和 "sex" ,那么它不会在调试器中给出错误,但在 sheet 本身中它仍然会给出 "You do not have permission" 错误。我环顾四周,发现触发器会导致这个问题,所以我添加了一个这样的触发器:

[X] deathProb   From spreadsheet  On edit"

并授权脚本访问另一个传播sheet,但这并没有解决任何一个问题。有什么想法吗?

您可能将此脚本用作自定义函数? 如果是这样,则此错误是由于最近推出的更改 Google 禁止在自定义函数中使用 SpreadsheetApp.openByUrl()、SpreadsheetApp.openById() 等。 您仍然可以在菜单项、触发器等其他上下文中使用此方法。Google 出于安全原因不得不推出此更改,他们将无法恢复到旧行为。

问题在问题跟踪器中列出:see here.