如何实现Google Sheet复选框被勾选时自动发送邮件
Google Sheet 复选框勾选触发自动邮件操作指南
完全不需要脚本基础,按照以下步骤操作即可实现需求:
1. 打开绑定脚本编辑器
- 打开你要设置的目标Google Sheet表格
- 点击顶部菜单栏「扩展程序」>「Apps 脚本」,进入脚本编辑页
- 清空页面默认生成的
function myFunction() {}冗余代码
2. 粘贴自定义代码
将以下代码粘贴到编辑框中,按照注释修改你需要的自定义参数即可:
function sendEmailWhenChecked(e) { // ========== 以下为可自定义的参数,按照你的需求修改 ========== const CHECKBOX_COL = 6; // 复选框所在列,A列=1、B列=2...F列就是6,不需要改 const SEND_STATUS_COL = 7; // 记录邮件发送状态的列,默认用G列,防止重复发送 const RECEIVER_EMAIL = "收件人邮箱@xxx.com"; // 填写收件人邮箱,多个用英文逗号分隔 const EMAIL_TITLE = "复选框触发的通知邮件"; // 填写你需要的邮件主题 // 填写邮件正文内容,\n代表换行,可自行调整格式,引用当前行其他列内容可参考示例 const EMAIL_CONTENT = `您好: 这是F列复选框被勾选后自动发送的通知。 当前行前5列的内容为:${e.range.getSheet().getRange(e.range.getRow(), 1, 1, 5).getDisplayValues()[0].join('、')} `; // ========== 以上为自定义参数,下方逻辑代码不需要修改 ========== const activeRange = e.range; const currentSheet = activeRange.getSheet(); // 校验触发条件:仅勾选复选框、且未发送过邮件时执行 if (activeRange.columnStart === CHECKBOX_COL && e.value === "TRUE" && currentSheet.getRange(activeRange.rowStart, SEND_STATUS_COL).getValue() !== "已发送") { MailApp.sendEmail(RECEIVER_EMAIL, EMAIL_TITLE, EMAIL_CONTENT); currentSheet.getRange(activeRange.rowStart, SEND_STATUS_COL).setValue("已发送"); } }
3. 配置自动触发器
- 点击脚本编辑页左侧菜单栏的闹钟图标(「触发器」)
- 点击右下角「添加触发器」,按如下规则设置:
- 选择要运行的函数:
sendEmailWhenChecked - 选择事件来源:来自电子表格
- 选择事件类型:编辑时
- 选择要运行的函数:
- 其余参数保持默认,点击保存后按照页面提示完成Google账号授权即可
4. 效果测试
返回Google Sheet表格,勾选任意一行F列的复选框,等待3-5秒即可自动发送邮件,对应行G列会自动标记「已发送」,避免后续重复触发。
注意事项
- 首次授权时如果出现「Google未验证此应用」的提示,点击「高级」>「前往(你的脚本名称)」即可继续授权,属于私有脚本的正常提示,无安全风险
- 如果需要调整邮件内容、收件人等配置,直接修改代码里的自定义参数即可
- 若复选框需要更换到其他列,修改
CHECKBOX_COL的对应数值即可
内容的提问来源于stack exchange,提问作者boon
相关产品推荐
相关产品推荐

