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

Apps Script自动发邮件时resolution字段显示undefined问题

问题分析与解决

你的代码中resolution显示undefined的核心原因是获取数据的范围不包含目标列:

在这行代码里:

const rData = e.source.getActiveSheet().getRange(e.range.rowStart,2,2,4).getValues();

getRange的参数含义是(起始行, 起始列, 行数, 列数),这里你指定从第2列开始,只取4列(即列2、3、4、5),所以rData中每一行的数组只有4个元素(索引0到3)。但你尝试通过rData[0][19]获取数据,这个索引远超出了数组的长度,自然返回undefined。


修复方案

根据你的需求,调整getRange的列数参数,确保包含resolution所在的列:

方案1:明确指定需要的列范围

如果resolution在第21列(对应你代码里的索引19,因为起始列是2,2+19=21),那么需要把列数设为21-2+1=20,修改代码如下:

const rData = e.source.getActiveSheet().getRange(e.range.rowStart,2,1,20).getValues()[0];
// 这里把行数改成1,因为你只需要当前行的数据,不需要2行
// 直接取[0]把二维数组转成一维,后续变量可以直接用索引访问
let email = rData[0];
let name = rData[2];
let resolution = rData[19];

方案2:获取整行数据(更稳妥)

如果不确定列的位置,或者后续可能新增列,可以直接获取触发行的所有列数据:

const sheet = e.source.getActiveSheet();
const rData = sheet.getRange(e.range.rowStart, 1, 1, sheet.getLastColumn()).getValues()[0];
// 注意这里起始列改成1,确保包含所有列
// 对应调整变量的索引(因为起始列从1开始了):
let email = rData[1]; // 原第2列对应索引1
let name = rData[3];  // 原第4列对应索引3
let resolution = rData[20]; // 原第21列对应索引20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:45:08