如何通过Google Sheets单元格下拉选择触发向特定人员自动发送邮件
实现Google Sheet下拉选择触发自动发邮件的操作方案
一、前置准备
先确认你的下拉选项所在的工作表名称、下拉选项所在的列号(比如下拉在C列就是第3列),提前准备好接收提醒的目标邮箱。
二、具体操作步骤
- 打开你的Google Sheet,点击顶部菜单栏的「扩展程序」>「Apps Script」,进入脚本编辑页面
- 删除脚本编辑器中默认的
myFunction相关代码,粘贴下方提供的完整代码 - 按照注释修改代码中的自定义配置项,修改完成后点击保存按钮,给项目随便起个名字保存
- 点击左侧菜单栏的「触发器」按钮,点击「添加触发器」,按以下参数配置:
- 选择要运行的函数:
sendAlertOnSelect - 选择事件来源:
电子表格 - 选择事件类型:
编辑 - 其余参数保持默认,点击保存,按照弹窗提示完成Google账号授权即可
- 选择要运行的函数:
三、可直接使用的代码
function sendAlertOnSelect(e) { // ---------- 以下是你需要修改的配置项 ---------- const TARGET_EMAIL = "你的收件邮箱@xxx.com"; // 替换成实际要接收提醒的邮箱 const SHEET_NAME = "Sheet1"; // 替换成你的下拉选项所在的工作表名称,注意区分大小写 const DROPDOWN_COLUMN = 3; // 替换成你的下拉选项所在的列号,A列是1、B列是2以此类推 const TRIGGER_VALUE = "我不理解,能否为我提供更多信息?"; // 如果你的下拉选项文本有修改,这里对应改 // ---------- 配置项结束,以下内容不用修改 ---------- // 获取当前编辑的单元格信息 const range = e.range; const sheet = range.getSheet(); // 校验是否是目标工作表的目标列的编辑操作 if (sheet.getName() !== SHEET_NAME || range.columnStart !== DROPDOWN_COLUMN) return; // 校验选中的值是否是需要触发邮件的选项 const selectValue = range.getValue(); if (selectValue !== TRIGGER_VALUE) return; // 构造邮件内容 const rowNum = range.getRow(); const employeeName = sheet.getRange(rowNum, 2).getValue(); // 这里默认员工姓名在B列,你可以自己改列号 const emailSubject = `简报阅读疑问提醒:第${rowNum}行员工提交了疑问申请`; const emailBody = ` 员工姓名:${employeeName} 所在行号:${rowNum} 提交的选项:${selectValue} 可点击以下链接查看表格:${sheet.getParent().getUrl()} `; // 发送邮件 MailApp.sendEmail(TARGET_EMAIL, emailSubject, emailBody); }
四、常见报错解决
如果你之前测试出现报错,逐一排查以下原因即可:
- 配置项里的工作表名称和实际工作表名称不一致,注意大小写、空格都要完全匹配
- 下拉列号填错,比如下拉在D列却填了3,注意A列对应1的计数规则
- 触发值的文本和下拉选项的文本不一致,哪怕多一个空格都不会触发,可以直接复制你的下拉选项文本粘贴到代码里
- 第一次运行没有完成授权,或者授权的时候选了错误的Google账号,建议删除原有触发器重新添加并授权
内容的提问来源于stack exchange,提问作者Chris Eastup
相关产品推荐
相关产品推荐

