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

Google Apps Script 修改需求:任务完成后自动发邮件至B列指定邮箱

解决Google Apps Script自动发送任务通知邮件的问题

原代码的核心问题

  • 未使用onEdit事件触发逻辑,无法自动响应单元格编辑操作
  • getRange("J:J").getValue()仅读取J列第一行的值,无法检测整列的编辑变化
  • 条件判断误用赋值运算符=,而非比较运算符==,导致逻辑错误
  • 固定收件人邮箱,未读取对应行B列的目标邮箱地址

修正后的脚本

function onEdit(e) {
  // 获取编辑事件的相关信息
  const editedCell = e.range;
  const activeSheet = editedCell.getSheet();

  // 仅处理Sheet1中J列(第10列)且值为"Approved"的编辑操作
  if (activeSheet.getName() !== "Sheet1" || editedCell.getColumn() !== 10 || e.value !== "Approved") {
    return;
  }

  // 获取当前编辑行的B列(第2列)邮箱地址
  const targetEmail = activeSheet.getRange(editedCell.getRow(), 2).getValue();

  // 简单验证邮箱格式,避免无效地址
  if (/^\S+@\S+\.\S+$/.test(targetEmail)) {
    // 发送任务完成通知邮件
    MailApp.sendEmail(
      targetEmail,
      "任务已完成",
      `您的任务已被标记为【Approved】,请知悉。`
    );
  }
}

关键说明

  • 用onEdit(e)事件函数自动响应单元格编辑,e对象包含编辑的单元格位置、新值等关键信息
  • 增加范围判断,仅在指定工作表、指定列的内容符合要求时执行邮件发送逻辑,避免无效触发
  • 通过编辑行号匹配对应B列的邮箱,实现动态收件人
  • 首次运行脚本需要完成授权;若需支持离线编辑、批量修改等场景,需在脚本编辑器的「编辑」→「当前项目的触发器」中创建可安装的 onChange 触发器

内容的提问来源于stack exchange,提问作者Joe S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:16:04