自动化

Google Apps Script 配额与限制完整指南(2026年)

ModelMonkey2026年7月2日阅读约 2 分钟

你能做的最有价值的事,是带着正确的问题去找负责维护脚本的同事。以下五个问题覆盖了90%的常见超时场景。可以直接把这一节发给对方。

1. "脚本是一行一行读单元格,还是一次性读整个数据区域?"

这是影响最大的单一因素。一次性读取500行数据,和循环500次逐格读取,时间差距可能超过5分钟--执行时长缩减幅度超过95%。如果同事回答"我需要确认一下",说明这个问题值得认真排查。

2. "脚本每次大概跑多久?触发器设的是多高频率?"

把单次运行时长乘以每日触发次数,就是每日运行时长的消耗估算。个人账户每日上限90分钟,Workspace 账户6小时。月末集中跑多个自动化任务时,很可能在同一天内把额度用完。

3. "差异分析表里的自定义函数--就是单元格里直接用等号调用的那些--有没有做跨标签页查找或者多步逻辑?"

单元格中直接调用的自定义函数超时时间是 30秒,不是6分钟。如果 WACC 计算表或其他模型函数偶尔无故显示 Error,30秒超时是第一个应排查的原因--不是公式写错了,是超时了。

4. "脚本有没有把写入操作拆成多个步骤、分开执行?"

写入操作和读取操作一样,逐格写比批量写慢得多。如果脚本对每一行分别写入,并且表格有几百行,这部分就在悄悄消耗执行时间。

5. "现在一共设了几个触发器?"

每个脚本的触发器上限是20个,个人和 Workspace 账户相同。如果把不同模型模块拆成独立触发器分别管理,可能在用完每日运行时长之前,就先撞上触发器数量的天花板。


一个常见误区:Workspace 升级不能突破6分钟

很多团队在遇到脚本超时后,第一反应是"升级账号"。6分钟的单次执行上限对个人账户和 Google Workspace 账户完全相同,付费升级不改变这一限制。

Workspace 的真实优势在于:每日总运行时长从90分钟提升至6小时,以及更大的邮件发送量。如果你们的问题是"脚本每次跑不完",升级 Workspace 不会有任何帮助;如果问题是"同一天内多个自动化任务把额度用完了",Workspace 才是有效解法。


数据"只更新了一半":故障的根本原因

根据 Google 官方文档:"若脚本超出配额或限制,该脚本将被终止并显示错误信息。" 错误提示为 Exceeded maximum execution time。

关键机制:终止前已完成的写入操作会被保留,后续未完成的部分静默丢失。 脚本不会回滚,不会报警,表格里只剩下已经写入的那一半数据。这就是为什么季度结账后差异分析表看起来"填了一半"--前200行是脚本在被终止前完成的,后面是静默丢失的部分。

对于简单脚本而言,6分钟通常远够用。真正触碰上限的,往往是这类任务:从损益表标签页读取实际数据、与预算数据交叉核对、计算36个月差异、将异常标记写入汇报标签页、再发送摘要邮件--每一步都在消耗执行时间,叠加起来很容易超标。


30秒自定义函数超时:比你预期的更容易踩坑

在单元格中以 =MYWACC(假设参数!B3:B10) 方式调用的自定义函数,超时时间是30秒,而非6分钟。故障表现是单元格直接显示 Error,没有任何提示,第一反应往往是"公式引用出了问题"。

如果你的 WACC 计算表或其他自定义函数偶尔无故报错,尤其是函数内部需要从多个标签页拉取数据、进行条件查找或多步逻辑处理时,30秒超时很可能是原因之一。

解决方向:将复杂的单元格自定义函数,改为由按钮触发或定时触发器驱动的普通函数,就能使用完整的6分钟执行时间。可以把本文第三个问题直接发给维护脚本的同事作为排查起点。


Apps Script 在财务模型中的实际承载上限

Apps Script 能够良好支撑以下场景:

  • 横跨8至10个标签页、不超过约2,000行的财务模型
  • 每小时或更低频率的刷新周期
  • 收件人数量不超过1,500人(Workspace)或100人(个人账户)的邮件分发
  • 每个财务模型最多20个独立监控或刷新触发器

以下场景开始显现局限:超过5,000行、包含复杂分配逻辑的流水账台账;需要每10分钟运行一次、含跨标签页复杂聚合的多标签页模型;以及任何需要接近实时响应的场景。

对于更重量级的工作流,执行环境本身将成为瓶颈,而非底层业务逻辑。ModelMonkey 在服务端处理 Sheets 操作--完全运行在 Apps Script 执行环境之外--因此不受6分钟执行墙和30秒自定义函数超时的约束。如果你的自动化任务频繁触碰这些上限,这一方案值得关注。


附录:完整配额参考表

配额分为两类:单次执行限制(触发后脚本立即终止)和每日累计配额(跨整个工作流持续累积)。

单次执行限制(触发后脚本强制终止,无法恢复):

限制项个人账户(Gmail)Google Workspace
最长执行时间6 分钟6 分钟
自定义函数超时30 秒30 秒
最大并发执行数3030

每日配额(每日固定时间重置):

限制项个人账户(Gmail)Google Workspace
每日总运行时长90 分钟6 小时
邮件收件人数量1001,500
URL Fetch 调用次数2 万次10 万次
每脚本触发器数量2020
Properties Service 读写次数5 万次5 万次

数据来源:Google Apps Script 官方配额文档(developers.google.com/apps-script/guides/services/quotas),2026年7月核实。

关于触发器调度精度:Apps Script 基于时间的触发器支持最短1分钟的调度间隔,但触发精度并无保证。设置为"每小时"的触发器可能在该小时内任意时刻触发。如果董事会汇报邮件需要在早上6:00准时送达,正确做法是将触发器设为5:00并预留充足缓冲,而不是设为5:55然后寄望于准时执行。


常见问题解答

Q:我们公司用的是 Google Workspace,脚本超时是不是可以突破6分钟限制?

不能。6分钟的单次执行上限对个人账户和 Google Workspace 账户完全相同,付费升级不改变这一限制。Workspace 的优势在于更高的每日总运行时长(6小时 vs. 90分钟)和更大的邮件发送量。

Q:自定义函数(在单元格中直接调用的函数)超时是多久?

30秒,而非6分钟。如果你的 WACC 计算表或其他自定义函数偶尔无故显示 Error,30秒超时是首先应排查的原因,优先于公式引用和数据格式问题。

Q:脚本超时后,已经写入的数据会保留吗?

超时前已完成的写入操作会保留,后续未完成的部分静默丢失。这就是脚本中途终止时表格数据"只更新了一半"的根本原因。

Q:每日90分钟的运行时长是从什么时候开始计算的?

每日配额按固定时间重置(太平洋时间午夜)。如果你在月末集中运行多个自动化任务,需注意同一天内多个触发器的累计运行时长。

Q:我不懂代码,但脚本经常超时,我能做什么?

将本文"五个问题"一节转发给负责维护脚本的同事。通常第一个问题(逐行读取 vs. 批量读取)和第三个问题(自定义函数超时)就能定位大多数超时场景的根本原因。


小结

2026年 FP&A 自动化中需要重点关注的 Apps Script 配额与限制:

  • 6分钟是绝对的执行时间上限,个人账户与 Workspace 账户完全相同,升级账号无法突破
  • 30秒是自定义函数超时时间--远低于大多数人的预期,单元格显示 Error 时应首先排查,优先于公式问题
  • 数据"只更新了一半" 是脚本被超时强制终止的典型症状,已完成的写入保留,未完成的静默丢失
  • 个人账户每日90分钟的总运行时长在小时级触发器场景下极易耗尽;Workspace 账户享有6小时
  • 每脚本20个触发器对于复杂的多任务监控设置是真实约束
  • 不写代码的分析师,可将本文"五个问题"一节转发给脚本维护同事,通常能定位90%的超时场景

如需验证数字,可参考 Google 官方配额页面:developers.google.com/apps-script/guides/services/quotas