【问题标题】:Google sheets, running a function as owner谷歌表格,以所有者身份运行功能
【发布时间】:2016-02-05 01:51:55
【问题描述】:

好的,我对 SO 很陌生,而且对 JS 和 Sheets 也很陌生。我正在写一张工作表,该工作表运行 3 个班次,首页和每个班次 4 个工作表。除了班次时间、AM、PM 和 NT 之外,每个班次的每个对应表都是相同的。
不得不与一些手指肥大的人打交道,我认为最好保护可以填写的表格和开放范围。在启动时只显示首页。我提供了一个带有开始和结束班次选项的菜单。运行开始班次并显示相应的班次页面,然后运行结束班次并隐藏它们。
问题是我不运行此显示/隐藏,并且由于工作表受到保护,用户也不能。无论谁通过菜单调用它,是否可以让一段 JS 以所有者权限运行?
这可能来自可安装的触发器,但我还没有从菜单项中找到方法。

【问题讨论】:

    标签: javascript triggers google-sheets


    【解决方案1】:

    我尝试创建一个更改单元格值的菜单项。不幸的是,它不会触发 onEdit 事件处理程序。所以,恐怕你可以从菜单项中做到这一点。一种解决方法是向单元格添加验证规则以创建下拉菜单。


    致对步骤感兴趣的人:

    首先,工作流程:

    • 电子表格有一个名为“Shift”的单元格
    • 用户可以将值更改为“开始”、“结束”或“”
    • 当“Shift”的值发生变化时,设置合适的protection

    步骤如下:

    1. 创建一个函数,比如unprotect(),它检查“Shift”是否是活动单元格并设置适当的保护
    2. 在您的项目脚本编辑器中,转到资源 > 当前项目的触发器
    3. 创建以下规则:运行 unprotect 从电子表格 编辑时
    4. 由于unprotect()installed trigger,它将在所有者权限下运行。

    【讨论】:

    • 这是我能找到的最佳选择,因此部分重新设计似乎是有序的。作为新手,我该在哪里回答您的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    相关资源
    最近更新 更多