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

Google Apps Script报TypeError: Cannot read property 'getLastRow' of null如何解决

报错原因与解决方案

你遇到的TypeError: Cannot read property 'getLastRow' of null报错,核心原因是代码尝试调用getLastRow()的Sheet对象实际为null,也就是代码没有成功获取到你指定的工作表,结合代码存在的其他问题,具体修复步骤如下:

问题1:未成功获取工作表对象

触发该报错的常见原因分两种:

  • 如果你的脚本是直接在script.google.com新建的独立脚本,SpreadsheetApp.getActive()无法定位到目标谷歌表格,自然获取不到对应工作表。可以替换为按表格ID获取:
    谷歌表格的ID可以从表格URL中提取,是URL中d/和/edit之间的字符串,替换到以下代码的对应位置即可:
    // 把引号内的内容替换为你自己的表格ID
    var Sheet = SpreadsheetApp.openById("你的表格ID").getSheetByName("IPP1");
    
  • 如果你的脚本是绑定到目标表格的容器脚本,请再次确认工作表名称和代码中填写的"IPP1"完全一致,没有多余的首尾空格、大小写差异,确认工作表没有被删除或隐藏。

问题2:变量名大小写不统一

JavaScript是大小写敏感的语言,你代码中定义的工作表变量是大写S开头的Sheet,但后续getRange调用时用的是小写s开头的sheet,修复完第一个问题后运行到此处也会触发未定义报错,需要统一变量名。

修正后完整代码

function myFunction() 
{
  // 独立脚本请把getActive替换为openById("你的表格ID"),绑定脚本可以保留当前写法
  var sheet = SpreadsheetApp.getActive().getSheetByName("IPP1");
  var lastRow = sheet.getLastRow();
  var emailAddress = sheet.getRange(lastRow, 4).getValue() ;
  var subject = 'XX';
  var bcc = "XX@gmail.com";
  
  //Create the message body
  var name= sheet.getRange(lastRow, 2).getValue();
  var message = 'XXX';
  MailApp.sendEmail(emailAddress, subject, message, {bcc:bcc});
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:39:03