0

我正在尝试让 Google 表格从另一张表格中获取精算数据;另一张表本质上是一个查找表。代码(删除了电子表格 id):

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

它应该非常简单,并且它在今年早些时候工作,但大约一个月前它停止工作,现在当我调试时它给出了错误:

找不到方法 getRange((class),(class),number,number)。(第 3 行,文件“”)。

在工作表本身中,它会给出错误“您无权执行该操作(第 3 行)”。

如果我将代码更改为“...getRange(5,5,1,1)...”,以便它不使用变量“age”和“sex”,那么它不会给出错误在调试器中,但在工作表本身中,它仍然给出“您没有权限”错误。我环顾四周,发现触发器会导致这个问题,所以我添加了一个这样的触发器:

[X] deathProb   From spreadsheet  On edit"

并授权脚本访问另一个电子表格,但这并没有解决任何一个问题。有任何想法吗?

4

1 回答 1

1

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

该问题列在问题跟踪器中:请参见此处。

于 2015-08-03T12:21:55.760 回答