You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets Apps Script:forEach编辑器运行正常,时间触发器无数据

问题原因

核心错误是代码中获取数据范围的对象调用错误:
你已经通过ss.getSheetByName("Data")获取到了目标工作表对象ws,但后续获取行数据时错误调用了整个电子表格对象ss的getDataRange()方法:

var values = ss.getDataRange().getDisplayValues();

ss.getDataRange()获取的是当前活动工作表的已用数据范围:

  • 手动运行函数时,你浏览器中打开的活动工作表刚好是Data,所以能拿到正确数据
  • 时间驱动触发器运行时无用户交互,默认活动工作表为电子表格的第一个工作表,若Data不是第一个工作表,拿到的就是其他表的无效数据,自然无法满足模板中r[2] === "RFP" && r[9] !== "On hold"的过滤条件,最终生成的表格tbody为空。
修复方案

将获取数据的代码行修改为用目标工作表对象ws调用getDataRange()即可:

// 原错误代码
// var values = ss.getDataRange().getDisplayValues();
// 替换为以下正确代码
var values = ws.getDataRange().getDisplayValues();
可选排查验证

如果修改后仍有问题,可以在获取values后加一行日志确认数据正确性:

Logger.log("获取到的Data表数据行数:%s,数据内容:%s", values.length, JSON.stringify(values));

查看触发器执行日志即可确认是否正确拿到了Data工作表的所有数据。

内容的提问来源于stack exchange,提问作者OliOp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:36:04