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

Apps Script获取Google Sheet指定列范围 解决VLOOKUP导致的N/A报错

问题核心原因

你调用的范围获取方法确实存在错误:

  • getDataRange() 是无参数方法,它会自动识别并返回工作表内所有包含内容的连续单元格范围,你传入的"A:EM"参数会被直接忽略,因此脚本依然会读取到后面带#N/A错误的VLOOKUP列,导致运行异常。

正确修改方案

替换范围获取逻辑,使用带A1范围参数的getRange()方法明确指定读取A到EM列的有效数据即可,修改后的代码如下:

var sheet = SpreadsheetApp.getActive().getSheetByName("Form responses 1");
// 先获取当前工作表的最后一行有效数据行号
var lastRow = sheet.getLastRow();
// 明确指定读取A1到EM列最后一行的范围
var range = sheet.getRange("A1:EM" + lastRow);
var values = range.getValues();
var lastRowValues = values[lastRow - 1];
Logger.log(lastRowValues);

额外优化建议(可选)

如果你的脚本是绑定表单提交触发器运行的,完全不需要手动读取范围,可以直接通过触发器的事件对象获取最新提交的行数据,效率更高也不会读取到多余列:

// 表单提交触发函数示例
function onFormSubmit(e) {
  // 直接获取最新提交的所有表单字段值,天然不包含后续新增的VLOOKUP列
  var lastRowValues = e.values;
  Logger.log(lastRowValues);
  // 后续邮件发送逻辑直接复用lastRowValues即可
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:54:02