Google脚本无法找到getRange,也无权运行

时间:2015-08-03 03:02:24

标签: javascript google-sheets

我试图制作一张Google表从另一张表中获取精算数据;另一张表基本上充当查找表。代码(删除了电子表格ID):

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

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

  

找不到方法getRange((class),(class),number,number)。 (第3行,文件&#34;&#34;)。

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

如果我将代码更改为&#34; ... getRange(5,5,1,1)...&#34;,那么它就不会使用变量&#34; age& #34;并且&#34;性别&#34;,然后它没有在调试器中给出错误,但在表单本身中它仍然给出了一个&#34;你没有权限&#34;错误。我环顾四周,发现触发器可能会导致这个问题,所以我添加了一个这样的触发器:

[X] deathProb   From spreadsheet  On edit"

并授权脚本访问其他电子表格,但这并没有解决任何问题。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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