好吧,我对 SO 很陌生,对 JS 和 Sheets 也相当陌生。我正在写一张工作表,该工作需要 3 个类次,每个类次有一个首页和 4 张表。除了类次时间、AM、PM 和 NT 之外,每个类次的每个相应工作表都是相同的。
不得不与一些手指粗的人打交道,我认为最好保护可以填写的表格和开放范围。启动时仅显示首页。我提供了一个带有开始和结束类次选项的菜单。运行“开始类次”会显示相应的类次页面,然后运行“结束类次”则会隐藏它们。
问题是我不运行此显示/隐藏,并且由于工作表受到保护,用户也无法运行。是否可以让 JS 的一部分以所有者权限运行,而不管谁通过菜单调用它?
可能可以通过可安装的触发器来实现,但我还没有从菜单项中找到如何实现。
最佳答案
我尝试创建一个更改单元格值的菜单项。不幸的是它不会触发 onEdit 事件处理程序。所以,恐怕您可以通过菜单项来完成此操作。解决方法是将验证规则添加到单元格以创建下拉菜单。
<小时/>对于那些对这些步骤感兴趣的人:
一、工作流程:
- 电子表格有一个名为“Shift”的单元格
- 用户可以将该值更改为“Start”、“End”或“”
- 设置适当的 protection当“Shift”的值改变时
步骤如下:
- 创建一个函数,例如
unprotect()
,该函数检查“Shift”是否为事件单元格并设置适当的保护 - 在项目脚本编辑器中,转到资源> 当前项目的触发器
- 创建以下规则:运行取消保护 从电子表格 编辑时
- 因为
unprotect()
是 installed trigger ,它将在所有者权限下运行。
关于javascript - Google Sheets,以所有者身份运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35215026/