Google Apps脚本错误:“您无权呼叫保护”

mic*_*ael 1 google-sheets google-apps-script custom-function

我正在尝试我的第一个Google Sheets Apps脚本。我试图做一个自定义函数(通过绑定脚本),将检查它所在的单元格是否受到保护。如果受保护,则应将单元格的值更改为(至少现在)保护类型。

我可以在文档中成功运行简单的演示脚本:

function DOUBLE(input) {
  return input * 2;
}
Run Code Online (Sandbox Code Playgroud)

但是当调用Range :: protect时,我会报错

"You do not have permission to call protect"
Run Code Online (Sandbox Code Playgroud)

这是功能

function isProtected() {
 var range = SpreadsheetApp.getActiveRange();
 var protection = range.protect();
 return protection.getProtectionType();
}
Run Code Online (Sandbox Code Playgroud)

其他一些功能(例如)也会出现相同的权限错误Session.getEffectiveUser()。我认为,由于这是一个绑定的自定义函数,而且我是(唯一的)工作表所有者,因此可以调用这些方法。我想念什么?谢谢。

我曾尝试将脚本复制粘贴到新工作表的脚本编辑器中,因为有些帖子对此很幸运,但对我来说却很不幸。

Ser*_*sas 5

自定义函数以匿名方式运行,因此隐式的结果是它们无法执行任何需要授权的操作

更改a range protection需要授权,这就是为什么您不能使用它并得到消息的原因...

对于相同的情况getEffectiveUser(),它也需要授权。

参考文档

与大多数其他类型的Apps脚本不同,自定义功能从不要求用户授权访问个人数据。因此,他们只能呼叫无法访问个人数据的服务