【问题标题】:Google App Script - How to allow other users edit only-me-protected cell through script?Google App Script - 如何允许其他用户通过脚本编辑仅受我保护的单元格?
【发布时间】:2018-04-11 11:49:53
【问题描述】:
我有销售表,只有我可以访问。
我有 Sales Form Sheet(不是 Google Form,而是 In-Spreadsheet 表单),可以通过 Google App Script 将数据输入到 Sales Sheet > 和其他用户可以访问此销售表格。
但简而言之,其他用户无法向销售表输入数据。错误是“您正在尝试编辑受保护的单元格或对象。bla bla bla...”
是否有任何解决方案可以让其他用户通过脚本向唯一受保护的单元格输入数据?
谢谢。
【问题讨论】:
标签:
google-apps-script
google-sheets
【解决方案1】:
是的,将脚本发布为 Web 应用程序,并提供以我身份运行和设置对您域中的任何人或匿名的访问权限的选项。
在您的脚本文件中创建一个doGet() 函数并从该函数中调用该脚本。
function doGet(e){
submitForm(); // This is your function that writes to the protected sheet
}
然后转到 Web 应用程序 URL 将像您一样运行脚本,并允许用户无权编辑工作表以像您一样提交数据。
【解决方案2】:
不要在工作表上设置保护,而是在已有数据的范围上设置保护,然后使用时间驱动函数扩展该范围。
例如,假设'Sales Sheet'!A1:Z10 有数据,但所有剩余的行都是空白的。你只会保护'Sales Sheet'!A1:Z10。当有人提交新数据时,该数据将进入第 11 行。您的时间驱动函数(可能每分钟)将更改保护以包括第 11 行 - 'Sales Sheet'!A1:Z11。
(很遗憾,当前用户无法被阻止编辑,因此您无法在提交时触发此操作。)
您的另一个选择是通过 Apps 脚本将数据提交到 Google 表单中,将表单结果保存到新的电子表格中,然后执行 =IMPORTRANGE() 以便其他用户仍然可以查看 提交。