You need to enable JavaScript to run this app. Google Apps Script报TypeError: Cannot read property '1' of undefined怎么修复
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script报TypeError: Cannot read property '1' of undefined怎么修复

Google Apps Script 报TypeError: Cannot read property '1' of undefined的修复方案

报错根因

该报错和data数组的初始化写法无关,核心原因是遍历索引超出了data数组的实际长度:访问data[i][1]时,data[i]本身为undefined,所以无法读取它的1属性。

  • sheet.getDataRange().getValues()返回的二维数组长度,等于Cal-0表中实际包含内容的总行数,数组索引从0开始,对应表格的第一行。
  • 代码直接从i=1999开始遍历,要求表格至少有2000行有内容的行才能取到data[1999],如果表格实际有内容的行数不足2000,data[1999]就为undefined,访问它的索引1属性就会触发报错。

修复方案

在遍历前增加长度校验,避免索引越界,修复后代码如下:

function find () {
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = ss.getSheetByName("Cal-0");
  let data = sheet.getDataRange().getValues();
  // 可先打印实际获取到的行数,确认是否符合预期
  Logger.log('实际获取到的有内容的行数:' + data.length);

  // 遍历上限取2005和data.length的较小值,避免越界
  for(let i = 1999; i < Math.min(2005, data.length); i++){
    // 先判断当前行存在,再访问行内的列属性
    if (data[i] && data[i][1] === ""){
      break;
    } 
    Logger.log('W0:' + data[i][0])
  };
}

补充说明

如果打印的data.length确实小于2000,说明当前Cal-0表没有足够多的有内容的行,可确认是否表名填写错误,或是需要调整遍历的起始索引。

内容的提问来源于stack exchange,提问作者Hector Eduardo Garcia Sanchez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 03:39:03