如何实现Google Sheet多单元格变动时发送邮件至多个邮箱?
解决方案
以下是适配所有需求的修改后代码:
function onEdit(e){ const ss = e.source; const sheet = ss.getActiveSheet(); const sName = sheet.getName(); // 定义需要监控的多个单元格(A1格式) const monitoredRanges = ['G4', 'B2', 'D5']; // 检查当前编辑的单元格是否在监控列表中 const editedRangeA1 = e.range.getA1Notation(); if(monitoredRanges.includes(editedRangeA1)){ const subject = '单元格已编辑'; // 多个收件邮箱用逗号分隔 const emails = 'matt@fremonthabitat.org, another@example.com, third@test.com'; // 使用反引号包裹模板字符串,正确解析变量 const message = `编辑的单元格位置:${editedRangeA1}\n工作表名称:${sName}\n新值:${e.value}`; MailApp.sendEmail(emails, subject, message); } }
关键修改说明:
- 监控多个单元格:把单个单元格字符串改成数组
monitoredRanges,用includes()方法判断当前编辑的单元格是否在监控范围内,后续添加新单元格直接往数组里加就行。 - 发送至多个邮箱:将收件邮箱改为逗号分隔的字符串(也可直接传入数组),
MailApp.sendEmail支持这种格式一次性发送给多个收件人。 - 修复变量解析问题:把邮件内容的单引号
'换成反引号`,这样模板字符串里的${变量}会被正确替换成对应的值,不会再显示成未解析的红色文本。
内容的提问来源于stack exchange,提问作者Matt Johnston
相关产品推荐
相关产品推荐

