【问题标题】:Sheets time-based triggers failing now表格基于时间的触发器现在失败
【发布时间】:2020-03-24 19:12:38
【问题描述】:

有问题的触发器函数通过调用 SpreadsheetApp.getActive() 打开绑定到的电子表格。直到过去一个月左右,它一直运行良好。当我直接运行它时它仍然有效。我需要做什么才能让它作为手动安装的基于时间的触发器再次运行? 这是我得到的错误:

2020 年 3 月 23 日,上午 8:49:44 错误异常:缺少文档 tCFl8MBsaqYwxcGogX2B1hg(可能它已被删除,或者您没有读取权限?) 在 HideOldEntries(代码:230:44)

代码片段如下:

function HideOldEntries() {
  const sheets = ['english','shengde','xingde','peide'];
  const now = new Date();
  for (var i = 0; i < sheets.length; i++) {
    //line:230
    var sheet = SpreadsheetApp.getActive().getSheetByName(sheets[i]);
    ...
  }
}

项目触发器:

编辑触发器:

【问题讨论】:

  • 您好,欢迎来到 SO。您能否提供更多有关您的触发器的信息?
  • 触发器是从 UI 手动创建的。请参阅原始帖子中随附的屏幕截图。
  • 检查工作表的权限,这听起来像是试图运行该行的人没有读取权限的问题。查看this answer 了解更多信息。
  • 共享权限是任何有链接的人,并且触发器以我的所有者身份运行。因此,当我删除触发器并再次添加它时,它现在可以工作了。我应该先尝试一下。
  • 太棒了,我会添加这个作为未来用户的答案。

标签: google-apps-script google-sheets triggers


【解决方案1】:

答案:

工作表权限和触发器运行的权限不匹配。

修复:

仔细检查工作表的权限,因为尝试运行代码的人将无权访问。

另一个选项是运行触发器的用户也没有权限。删除并重新设置此触发器以修复。

参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多