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

Google Sheet脚本开发:仅特定单元格范围编辑时发送邮件

Google Sheet 指定范围编辑触发邮件通知脚本

问题分析

原代码的核心问题:

  • getRange("C1:D18").getValue() 仅返回范围左上角单元格(C1)的值,无法检测整个范围的编辑动作
  • 未通过编辑事件判断修改的单元格是否落在目标范围内
  • 未绑定正确的触发器逻辑,函数无法感知编辑行为

正确实现代码

function onEdit(e) {
  // 配置目标参数
  const targetSheetName = "System";
  const targetRangeStr = "C1:D20";
  const notifyEmail = "email@domain.com";

  const editedSheet = e.range.getSheet();
  const targetRange = editedSheet.getRange(targetRangeStr);

  // 判断是否触发通知条件:编辑目标工作表,且编辑范围与目标范围有交集
  if (editedSheet.getName() === targetSheetName && e.range.intersects(targetRange)) {
    MailApp.sendEmail({
      to: notifyEmail,
      subject: "System表格已更新",
      body: `检测到System表格的${e.range.getA1Notation()}单元格区域发生修改。`
    });
  }
}

使用步骤

  1. 打开目标Google Sheet,点击顶部菜单栏「扩展程序」→「Apps Script」
  2. 删除默认代码,粘贴上述代码
  3. 根据实际需求修改targetSheetName、targetRangeStr和notifyEmail参数
  4. 保存脚本(可自定义脚本名称),关闭编辑器
  5. 返回表格,在指定范围内编辑单元格,即可触发邮件通知

关键逻辑说明

  • 使用onEdit(e)内置触发器函数,自动接收编辑事件对象e,无需手动绑定触发器
  • 通过e.range获取被编辑的单元格范围,用intersects()方法判断是否与目标范围重叠,精准控制触发条件
  • 邮件内容加入了具体修改的单元格位置,提升通知的实用性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:20:31