Google apps script 为除功能外的所有人保护一个单元

Google apps script 为除功能外的所有人保护一个单元,google-apps-script,google-sheets,protected,Google Apps Script,Google Sheets,Protected,我是应用程序脚本的新手,我想知道是否可以为每个人保护一个单元格(他们不能直接更改值),但可以通过每个人都调用的函数进行更改? 谢谢 编辑:用户不能直接更改单元格,但他有一个带有脚本的按钮,该按钮可以更改保护单元格的值,但当前如果我将单元格置于“保护工作表和范围”中,脚本不起作用是的,这是可能的。 第一选项 使用将成为文档所有者的 是如何在应用程序脚本中合并服务帐户的示例 确保为服务帐户提供了必要的作用域 并启用域范围的委派 第二选项 将脚本部署为,并按 第三种选择 使用-这将在您授权后代表您运行

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

编辑:用户不能直接更改单元格,但他有一个带有脚本的按钮,该按钮可以更改保护单元格的值,但当前如果我将单元格置于“保护工作表和范围”中,脚本不起作用

是的,这是可能的。 第一选项

使用将成为文档所有者的

是如何在应用程序脚本中合并服务帐户的示例

确保为服务帐户提供了必要的作用域 并启用域范围的委派

第二选项

将脚本部署为,并按

第三种选择


使用-这将在您授权后代表您运行。例如,您可以设置一个可安装的OneEdit触发器,如果用户编辑了某个单元格(例如“A20”),该触发器将启动脚本功能。

请详细说明更多内容谢谢您的回复。您的意思是当用户启动脚本时,应该像启动脚本的是工作表的所有者一样启动脚本吗?没有SSO没有更简单的方法吗?另一种可能是创建一个Web应用程序,作为脚本所有者执行,请参阅此处了解更多信息:我有一个函数,它增加了脚本属性中存储的唯一id,我将此id放入一个单元格中,我希望为用户保护该id,因此我认为我无法将此函数外部化。还有一个问题:使用可安装触发器-这将在您授权后代表您运行。例如,您可以设置一个可安装的OneEdit触发器,如果用户编辑某个单元格(例如“A20”),该触发器将触发脚本功能。我将用这三种可能性更新我的答案——以防其他人对解决方案感兴趣。