当指定单元格区域存在空白时自动发送邮件的脚本需求
Google Sheets 自动空白单元格邮件提醒脚本
以下是实现你需求的完整脚本,包含详细配置和使用步骤:
脚本代码
function checkEmptyCellsAndSendEmail() { // 获取当前活动工作表 const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const sheetName = sheet.getName(); // 定义需要检查的目标区域(D22:G35) const checkRange = sheet.getRange('D22:G35'); const rowValues = checkRange.getValues(); const baseRow = checkRange.getRow() - 1; // 计算对应A列的起始行偏移量 // 提取收件人列表(B41:G51),过滤空白并转为逗号分隔字符串 const recipientRange = sheet.getRange('B41:G51'); const recipientList = recipientRange.getValues().flat().filter(email => email).join(','); // 无有效收件人时直接终止 if (!recipientList) return; // 遍历检查每一行是否完全空白 rowValues.forEach((row, index) => { const isRowBlank = row.every(cell => cell === ''); if (isRowBlank) { // 获取对应A列的时间文本(如D22对应A21) const targetDateRow = baseRow + index; const dateText = sheet.getRange(`A${targetDateRow}`).getValue(); // 构建邮件内容 const emailSubject = `Please fill out points for ${sheetName} ${dateText}`; const emailBody = `There are not any points put in for ${sheetName} on ${dateText}. Please put in points for this time and date. This is an automated message. Please do not reply.`; // 发送邮件 MailApp.sendEmail(recipientList, emailSubject, emailBody); } }); }
配置步骤
- 打开你的Google Sheets,点击顶部菜单栏的「扩展程序」>「Apps脚本」
- 创建新的脚本文件,删除默认代码并粘贴上述脚本
- 保存项目(命名如
EmptyCellReminder),首次运行脚本时会触发权限申请,按照提示完成授权(需要允许脚本访问表格数据和发送邮件)
设置定时触发器
- 在Apps脚本界面左侧点击「触发器」图标(时钟样式)
- 点击「添加触发器」,配置以下参数:
- 要运行的函数:
checkEmptyCellsAndSendEmail - 部署类型:头部部署
- 事件源:时间驱动
- 时间基于:周计时器
- 时间:每周一至周五,下午3点(请选择与你表格匹配的时区)
- 时区:设置为你的本地时区(如北京时间)
- 要运行的函数:
注意事项
- 确保B41:G51区域内的邮箱地址格式正确,空白单元格会被自动过滤
- 确认A21至A34区域的文本为需要显示的时间内容,脚本会直接引用该内容到邮件中
- 若需调整检查区域、收件人区域或对应A列的行范围,可修改脚本中
checkRange、recipientRange或targetDateRow的相关定义
内容的提问来源于stack exchange,提问作者QuestionAsker
相关产品推荐
相关产品推荐

