无法使用脚本从受保护范围的编辑权限中删除有效用户 - 谷歌表格

胼胝

在谷歌表格中,我试图使用脚本来制作受保护的范围。

我希望脚本创建一个只有所有者可以编辑的受保护范围,其他人不能编辑,但是脚本在为不是所有者的用户运行时必须工作。

当我以电子表格的所有者身份登录并从脚本编辑器运行代码时,它运行良好 - 它创建了一个只有所有者可以编辑的受保护范围 G1:G10。

但是,当我以不是所有者的用户身份登录时运行脚本时,受保护范围的权限允许用户和所有者都可以编辑范围。我知道谷歌开发者文档上的这个页面这个页面,但是我看不到任何对我有帮助的东西。

这是我的代码:

function setProtections() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var owner = ss.getOwner();
  var effectiveUser = Session.getEffectiveUser();
  var range = ss.getRange('G1:G10');
  var protection = range.protect()
  var editors = protection.getEditors();
  protection.removeEditors(editors);
  protection.addEditor(owner);
}

任何人都可以帮忙吗?

随机部分

removeEditors()不允许删除当前用户:

从受保护工作表或范围的编辑器列表中删除给定的用户数组。请注意,如果任何用户是具有编辑权限的 Google 群组的成员,或者如果域中的所有用户都具有编辑权限,则这些用户仍然可以编辑受保护区域。电子表格的所有者和当前用户都不能被删除。

但是,您可以使用所有者创建的安装触发器,该触发器将以创建触发器 [所有者]的用户身份运行您的方法- 即使它是由其他用户触发的。setProtections()

示例:可安装触发器onEdit()

function installedOnEditTrigger (e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];

  //Checks if the sheet edit happened in the 7th column "G"
  if (e.range.getColumn() == 7) {
    var range = ss.getRange('G1:G10');
    var protection = range.protect()
    var editors = protection.getEditors();
    //Removes all editors - owners can not be removed
    protection.removeEditors(editors);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在谷歌表格脚本中连接两列

来自分类Dev

在谷歌电子表格中查找日期范围

来自分类Dev

通过谷歌表格中的脚本设置列值

来自分类Dev

在谷歌表格脚本中问题转换为字符串

来自分类Dev

表单提交后触发谷歌表格中的脚本

来自分类Dev

防止使用MailApp.sendEmail Google表格换行?谷歌脚本

来自分类Dev

获取谷歌分析访问令牌以及如何在谷歌表格脚本中使用它

来自分类Dev

如何使用谷歌应用程序脚本为谷歌表格制作简单的多线程

来自分类Dev

在谷歌表格中定位所有单元格的位置

来自分类Dev

谷歌表格在变化时获得活动范围

来自分类Dev

添加按钮以触发谷歌表格顶部栏上的脚本

来自分类Dev

从谷歌表格中的查询中获取每行 n 次

来自分类Dev

在特定数量的谷歌表格中停止总和

来自分类Dev

将谷歌表格中的水平数据转换为垂直数据

来自分类Dev

如何从侧边栏链接到谷歌表格中的特定行

来自分类Dev

对谷歌电子表格中的字母进行排序

来自分类Dev

根据重复更新谷歌表格中的一行

来自分类Dev

清除谷歌电子表格中的列内容

来自分类Dev

努力寻找在谷歌表格中实现条件格式的方法

来自分类Dev

循环浏览谷歌表格中的一组值

来自分类Dev

谷歌电子表格中的动态减法

来自分类Dev

如何使用 UITableView 实现谷歌风格的表格视图?

来自分类Dev

是否有将谷歌文档转换为谷歌电子表格的功能?

来自分类Dev

将谷歌地图点的坐标提取到 HTML 中的谷歌表格

来自分类Dev

“谷歌电子表格”选择范围来填充脚本编辑器中的边框(简化我的代码)

来自分类Dev

是否可以编写脚本来根据该行中的日期复制、粘贴和删除整行?(谷歌表格)

来自分类Dev

想要为我的谷歌网站使用应用程序脚本创建谷歌表格、文档、文件夹

来自分类Dev

如何使用谷歌应用程序脚本获取谷歌电子表格最后一行的值

来自分类Dev

如何在谷歌电子表格中隐藏和显示特定名称范围

Related 相关文章

  1. 1

    在谷歌表格脚本中连接两列

  2. 2

    在谷歌电子表格中查找日期范围

  3. 3

    通过谷歌表格中的脚本设置列值

  4. 4

    在谷歌表格脚本中问题转换为字符串

  5. 5

    表单提交后触发谷歌表格中的脚本

  6. 6

    防止使用MailApp.sendEmail Google表格换行?谷歌脚本

  7. 7

    获取谷歌分析访问令牌以及如何在谷歌表格脚本中使用它

  8. 8

    如何使用谷歌应用程序脚本为谷歌表格制作简单的多线程

  9. 9

    在谷歌表格中定位所有单元格的位置

  10. 10

    谷歌表格在变化时获得活动范围

  11. 11

    添加按钮以触发谷歌表格顶部栏上的脚本

  12. 12

    从谷歌表格中的查询中获取每行 n 次

  13. 13

    在特定数量的谷歌表格中停止总和

  14. 14

    将谷歌表格中的水平数据转换为垂直数据

  15. 15

    如何从侧边栏链接到谷歌表格中的特定行

  16. 16

    对谷歌电子表格中的字母进行排序

  17. 17

    根据重复更新谷歌表格中的一行

  18. 18

    清除谷歌电子表格中的列内容

  19. 19

    努力寻找在谷歌表格中实现条件格式的方法

  20. 20

    循环浏览谷歌表格中的一组值

  21. 21

    谷歌电子表格中的动态减法

  22. 22

    如何使用 UITableView 实现谷歌风格的表格视图?

  23. 23

    是否有将谷歌文档转换为谷歌电子表格的功能?

  24. 24

    将谷歌地图点的坐标提取到 HTML 中的谷歌表格

  25. 25

    “谷歌电子表格”选择范围来填充脚本编辑器中的边框(简化我的代码)

  26. 26

    是否可以编写脚本来根据该行中的日期复制、粘贴和删除整行?(谷歌表格)

  27. 27

    想要为我的谷歌网站使用应用程序脚本创建谷歌表格、文档、文件夹

  28. 28

    如何使用谷歌应用程序脚本获取谷歌电子表格最后一行的值

  29. 29

    如何在谷歌电子表格中隐藏和显示特定名称范围

热门标签

归档