google-apps-script - 为什么当我运行 Google 表格中的宏时它运行良好,但当我使用简单的每日时间触发器安排它时却不行?
问题描述
我最近在 Google 表格中创建了一个宏,经过大量的反复试验,让它完美且一致地工作。通过在 Google 表格文件中选择宏,我已经尝试了近 100 次,并且从未失败过。
但是,我想安排宏每天运行一次,以便从中获得最大的功能。因此,使用 Google Apps 脚本,我为宏添加了一个触发器,其中包含以下详细信息:“Head”在部署时运行;“时间驱动”事件源;“日计时器”类型的基于时间的触发器;一天中的“凌晨 1 点至凌晨 2 点”时间。
但是,每次触发宏自动运行时,它都失败了,每次在凌晨 1:40 给我一个错误通知,错误消息是:“异常:索引为 19 和组深度为 1 的行组不存在。”
我相信这是参考宏的第一部分(它使用绝对单元格引用,而不是相对),其中我取消折叠某组行(从第 19 行开始)然后取消组合它们。同样,当我在 Google 表格中单击以自己运行完全相同的宏时,这非常有效,所以我不明白可能是什么问题导致它在时间触发时无法成功运行。
任何帮助将不胜感激。太感谢了!
解决方案
当您运行脚本时,很可能您在 Web 浏览器中打开了电子表格,因此诸如SpreadsheetApp.getActiveSheet()
根据您打开的工作表、您选择的单元格等方法返回相应的对象,但是当一个函数被时间调用时-驱动触发器运行SpreadsheetApp.getActiveSheet()
返回第一个工作表,其他方法可能返回与您期望的不同的东西。
推荐阅读
- python - (变分)自编码器中异常阈值的实际确定
- javascript - 在 React 中将数组存储到本地存储中
- c - 在进行分配操作时,将其类型转换为比实际更长的数据类型时,c 中的类型转换如何表现
- ruby-on-rails - 获取对象数组的关联记录
- file - 如何从 trust.p12 证书文件中获取 SSL 证书主题、颁发者、开始日期和到期日期
- git - 如何将 .git/ 文件更改推送到远程(服务器)存储库
- haskell - 将 forkIO 推广到 MonadIO
- spring - DEF_CONTENT_CHARSET 错误
- typescript - Angular 6 库:在 CI 管道中构建库以创建 lib 版本
- sql - SQL 通过 ODBC FileMaker 字段由 ¶?