我可以以某种方式强制触发 onOpen 吗?

Can I somehow force onOpen trigger?

为了让我组织的用户仅使用我制作的脚本来编辑传播的受保护部分sheet,我已经苦苦挣扎了两天。

我经历了地狱,我最终如何让它发挥作用的是,我在存储数据的地方做了一个假的隐藏 sheet,然后打开,我将该数据复制粘贴到sheet 用户看到(他们无法编辑)。如果可能的话,我想让用户体验更好一些,我希望有一种方法可以从脚本中强制触发 onOpen。我知道我可能没有做对,但我不能花更多的时间研究,所以我现在需要暴力破解。 (我试过 onChange 触发器,我试过在我的网络应用程序中设置权限,使用 doPost,我的大脑受伤了,这是我第一次编写脚本)。

TL;DR 有没有办法从脚本编辑器刷新整个选项卡?我需要在用户无需重新加载页面的情况下触发 onOpen 事件。

要“强制”onOpen 简单触发器,您有以下选项

  • 调用打开
    function respondToChange(e){
      onOpen();
    }
    
    如果您的 onOpen 函数需要事件对象,您将不得不模拟它。
    function respondToChange(e){
      const event = {};
      // add the required properties to event
      onOpen(event);
    }
    
  • 使用 setSpreadsheetLocale
  • 更改电子表格区域设置

相关

  • How to change Google Apps Script locale?

当通过单击按钮或选择自定义菜单项或通过 onOpen(e)onEdit(e)simple trigger 功能 运行 时,它 运行s 在键盘 用户的帐户下

要在另一个有权访问受保护范围的帐户下触发 运行 的功能,您需要一个 installable trigger