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

实现Google Sheets特定单元格区域编辑时自动发送邮件

限定Google Sheets编辑触发邮件的范围修改方案

要实现仅在B3:E7区域被编辑时才发送邮件,只需在原代码开头加入范围判断逻辑,一旦编辑区域不在目标范围内就直接终止执行,具体修改如下:

修改后的完整代码

//@OnlyCurrentDoc
function processEdit(e) {
  // 定义目标触发区域:B3:E7
  const targetStartRow = 3;
  const targetEndRow = 7;
  const targetStartCol = 2; // B列对应第2列
  const targetEndCol = 5; // E列对应第5列

  // 获取编辑区域的行列范围
  const editStartRow = e.range.getRow();
  const editEndRow = e.range.getLastRow();
  const editStartCol = e.range.getColumn();
  const editEndCol = e.range.getLastColumn();

  // 判断编辑区域是否与目标区域无重叠,无重叠则直接返回
  if (editEndRow < targetStartRow || editStartRow > targetEndRow || 
      editEndCol < targetStartCol || editStartCol > targetEndCol) {
    return;
  }

  // 以下为原有的邮件发送逻辑
  var sheet = SpreadsheetApp.getActive();
  var rows = sheet.getRangeByName("signups").getValues();
  var headerRow = rows.shift();
  var editedRow = e.range.getRow();
  
  var template = HtmlService.createTemplateFromFile("Template");
  template.headerRow = headerRow;
  template.editedRow = editedRow;
  template.rows = rows;
  
  var html = template.evaluate().getContent();
  
  MailApp.sendEmail({
    to: "myemail@gmail.com ",
    subject: "This is test mail",
    htmlBody: html
  });
}

关键逻辑说明

  • 目标区域定义:Google Sheets的行列从1开始计数,B3对应行3、列2,E7对应行7、列5,直接用数值定义边界即可。
  • 编辑区域判断:通过e.range获取编辑区域的起始/结束行和列,若编辑区域完全在B3:E7之外(比如编辑行小于3或大于7,列小于2或大于5),就直接终止函数,不执行邮件发送。
  • 兼容性:不管是编辑单个单元格还是选中一片区域修改,只要这片区域和B3:E7有重叠,就会触发邮件;完全在外部的编辑则不会触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:10:43