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

运行Google Sheets Apps Script报TypeError: Cannot read property '1' of undefined如何解决

报错根本原因

你的报错和formRespValues是否包含空元素无关,核心问题出在for循环的终止条件书写错误:
你当前的循环写法是:

for (var n = 0; formRespValues.length; n++)

for语句第二个位置为循环终止判断条件,formRespValues.length只要数组不为空就永远返回真值,循环永远不会主动停止,n会一直递增直到超出数组的下标范围,此时访问formRespValues[n]会得到undefined,再调用[1]就会触发类型错误,这就是日志弹出报错的来源。
你现在功能看起来能正常执行,是因为匹配的目标行在循环下标越界前就已经被找到并完成赋值,后续循环继续执行直到触发越界报错,所以只会在日志里留下报错记录,不影响核心操作的执行。

修复方案

把循环条件改成正常的下标判断即可:

// 原错误写法
// for (var n = 0; formRespValues.length; n++)
// 修正后写法
for (var n = 0; n < formRespValues.length; n++)

额外优化建议

如果你的业务场景中testNo是唯一值,匹配到对应行之后可以加break跳出循环,避免无意义的遍历:

if (formRespValues[n][1] == testNo) {
  formRespSheet.getRange('M' + (2 + n)).setValue('Yes');
  break; // 匹配到目标后直接终止循环
}

如果存在多个相同testNo需要批量赋值的情况,不需要加break,仅修正循环条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:24:05