【问题标题】:Protect a cell for everyone except for function保护除功能以外的所有人的细胞
【发布时间】:2019-10-22 12:51:09
【问题描述】:

我是应用程序脚本世界的新手,我想知道是否可以为每个人保护一个单元格(他们不能直接更改值),但可以通过将调用的函数进行更改每个人 ? 谢谢

编辑:用户无法直接更改单元格,但他有一个带有脚本的按钮,该脚本应该能够更改保护单元格的值,但目前如果我将单元格放在“保护工作表和范围”脚本中不工作

【问题讨论】:

  • 请详细说明以提供更多上下文

标签: google-apps-script google-sheets protected


【解决方案1】:

是的,有可能。

第一个选项

使用service accountimpersonate 文档的所有者。

Here 是如何在 Apps 脚本中合并服务帐户的示例。

确保为服务帐号提供必要的范围 并启用域范围的委派。

第二个选项

将您的脚本部署为Web App 并以you 执行它

第三个​​选项

使用installable trigger - 这将在您授权后代表您运行。你可以例如设置一个可安装的 onEdit 触发器,如果​​用户编辑了某个单元格(例如“A20”),它将触发脚本函数。

【讨论】:

  • 感谢您的回复。你的意思是当用户启动脚本时,它应该像启动它的工作表的所有者一样启动?不使用 SSO 有没有更简单的方法?
  • 另一种可能性是创建一个作为脚本所有者执行的 Web 应用程序,请参阅此处了解更多信息:developers.google.com/apps-script/guides/…developers.google.com/apps-script/guides/web#permissions
  • 我有一个函数可以增加一个存储在脚本属性中的唯一 id,我把这个 id 放在一个单元格中,我希望为用户提供保护,所以我认为我不能外部化这个函数跨度>
  • 还有一个解决方法:使用可安装的触发器 - 在您授权后它将代表您运行。你可以例如设置一个可安装的 onEdit 触发器,如果​​用户编辑了某个单元格(例如“A20”),它将触发脚本函数。 developers.google.com/apps-script/guides/triggers/installable
  • 我将用所有三种可能性更新我的答案 - 以防其他人对解决方案感兴趣。
猜你喜欢
  • 2015-05-18
  • 1970-01-01
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
相关资源
最近更新 更多