我试图制作一张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"
并授权脚本访问其他电子表格,但这并没有解决任何问题。有什么想法吗?
答案 0 :(得分:1)
您可能正在使用此脚本作为自定义函数? 如果是这样,此错误是由于Google最近推出的更改,禁止在自定义函数中使用SpreadsheetApp.openByUrl(),SpreadsheetApp.openById()等。 您仍然可以在其他上下文中使用此方法,例如菜单项,触发器等。出于安全原因,Google必须推出此更改,否则他们将无法恢复旧行为。
问题列在问题跟踪器中:see here.