首页 > 解决方案 > 为什么当我运行 Google 表格中的宏时它运行良好,但当我使用简单的每日时间触发器安排它时却不行?

问题描述

我最近在 Google 表格中创建了一个宏,经过大量的反复试验,让它完美且一致地工作。通过在 Google 表格文件中选择宏,我已经尝试了近 100 次,并且从未失败过。

但是,我想安排宏每天运行一次,以便从中获得最大的功能。因此,使用 Google Apps 脚本,我为宏添加了一个触发器,其中包含以下详细信息:“Head”在部署时运行;“时间驱动”事件源;“日计时器”类型的基于时间的触发器;一天中的“凌晨 1 点至凌晨 2 点”时间。

但是,每次触发宏自动运行时,它都失败了,每次在凌晨 1:40 给我一个错误通知,错误消息是:“异常:索引为 19 和组深度为 1 的行组不存在。”

我相信这是参考宏的第一部分(它使用绝对单元格引用,而不是相对),其中我取消折叠某组行(从第 19 行开始)然后取消组合它们。同样,当我在 Google 表格中单击以自己运行完全相同的宏时,这非常有效,所以我不明白可能是什么问题导致它在时间触发时无法成功运行。

任何帮助将不胜感激。太感谢了!

标签: google-apps-scriptgoogle-sheetstriggers

解决方案


当您运行脚本时,很可能您在 Web 浏览器中打开了电子表格,因此诸如SpreadsheetApp.getActiveSheet()根据您打开的工作表、您选择的单元格等方法返回相应的对象,但是当一个函数被时间调用时-驱动触发器运行SpreadsheetApp.getActiveSheet()返回第一个工作表,其他方法可能返回与您期望的不同的东西。


推荐阅读