2

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

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

function DOUBLE(input) {
  return input * 2;
}

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

"You do not have permission to call protect"

这是功能

function isProtected() {
 var range = SpreadsheetApp.getActiveRange();
 var protection = range.protect();
 return protection.getProtectionType();
}

我也遇到了与其他一些功能相同的权限错误,例如Session.getEffectiveUser(). 我想,由于这是一个绑定的自定义函数并且我是(唯一的)工作表所有者,所以我可以调用这些方法。我错过了什么?谢谢。

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

4

1 回答 1

7

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

更改 arange protection需要授权,这就是为什么您无法使用它并获取您收到的消息...

同样的情况getEffectiveUser(),它也需要授权。

文档中的参考

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

于 2016-04-01T22:04:10.950 回答