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

Google Sheets App Script:实现指定工作表编辑触发专属邮件

问题解决思路与修改后的脚本

一、先解决「仅Tab1编辑时触发邮件」的问题

原脚本的核心问题是没有校验当前编辑的是哪个工作表,所以任意工作表的第一列设为"NEW"都会触发邮件。只需在判断条件中加入工作表名称的校验即可:

function onEdit(e) {
  // 从事件对象中获取当前工作表,比主动获取更可靠
  let sheet = e.source.getActiveSheet(); 
  let range = e.range; 
  let col = range.getColumn(); 
  // 直接用事件对象的value获取编辑后的值,无需额外读取单元格
  let cellValue = e.value; 

  let cellLocation = range.getA1Notation(); 
  let url = "https://docs.google.com/spreadsheets/d/1bAJ0Asma4lX1tW3HYezW_Al6llkpaIKWSLptfjV-pAI/edit#gid=712318935"

  // 新增工作表名称判断,仅当编辑的是Tab1时才执行邮件逻辑
  if (sheet.getName() === "Tab 1" && col === 1 && cellValue === "NEW") {
    MailApp.sendEmail(
      'email1@email.com',
      'Staff Overview Update',
      `有一处Staff Overview表格的更新需要您关注:${url}&range=${cellLocation}`,
      {name: 'Team Leader'}
    ); 
  }
}

二、扩展:不同工作表对应不同收件人

如果后续要实现「Tab1发邮件给人员1、Tab2发邮件给人员2」的需求,不用写多个脚本,用工作表-收件人映射对象就能一次性处理所有场景:

function onEdit(e) {
  let sheet = e.source.getActiveSheet();
  let sheetName = sheet.getName();
  let range = e.range; 
  let col = range.getColumn(); 
  let cellValue = e.value; 

  let cellLocation = range.getA1Notation(); 
  let url = "https://docs.google.com/spreadsheets/d/1bAJ0Asma4lX1tW3HYezW_Al6llkpaIKWSLptfjV-pAI/edit#gid=712318935"

  // 定义工作表名称与对应收件人的映射关系,后续新增工作表直接在这里加即可
  const sheetRecipients = {
    "Tab 1": "email1@email.com",
    "Tab 2": "email2@email.com",
    "Tab 3": "email3@email.com",
    "Tab 4": "email4@email.com"
  };

  // 校验:当前工作表在映射列表中,且满足第一列设为"NEW"的条件
  if (sheetRecipients[sheetName] && col === 1 && cellValue === "NEW") {
    MailApp.sendEmail(
      sheetRecipients[sheetName],
      'Staff Overview Update',
      `有一处Staff Overview表格的更新需要您关注:${url}&range=${cellLocation}`,
      {name: 'Team Leader'}
    ); 
  }
}

关键优化说明

  1. 用e.source.getActiveSheet()替代原写法:事件触发时,e.source就是当前操作的表格,避免手动执行脚本时出现异常。
  2. 用e.value获取编辑值:直接从事件对象中读取,比额外调用getActiveCell().getValue()更高效。
  3. 映射对象管理收件人:后续新增工作表或修改收件人,只需维护sheetRecipients对象,不用修改核心逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:16:09