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

Google Script优化:仅C列最后一行编辑时触发邮件通知

优化后的Google Script代码

以下是修改后的代码,仅当C列的最后一行单元格被编辑时才触发邮件通知,同时保留原有的销售额判断逻辑:

function go(e) {
  const sheet = e.source.getActiveSheet();
  // 获取编辑单元格的列号与行号
  const editedCol = e.range.columnStart;
  const editedRow = e.range.rowStart;
  
  // 获取C列有数据的最后一行行号
  const lastRowC = sheet.getRange("C:C").getLastRow();
  
  // 核心判断:仅编辑C列最后一行时才执行后续逻辑
  if (editedCol === 3 && editedRow === lastRowC) {
    const monthSales = sheet.getRange(lastRowC, 3).getValue();
    if (monthSales > 1) {
      // 获取当前行前4列数据
      const [date, location, quantity, items] = sheet.getRange(editedRow, 1, 1, 4).getValues()[0];
      const formattedDate = new Date(date).toLocaleDateString("en-US");
      const currentTime = new Date().toLocaleString("en-US");
      const subjectPrefix = sheet.getRange("B1").getValue();
      
      const message = ` (${formattedDate}) Enter warehouse location for ${quantity} ${items} Requested by ${location} ${currentTime}`;
      GmailApp.sendEmail("myemailaddress", `${subjectPrefix} Entered a Request`, message);
    }
  }
}

关键修改说明

  • 触发条件精准化:通过editedCol === 3(C列对应列号3)和editedRow === lastRowC(C列最后一行)的组合判断,确保只有目标单元格被编辑时才触发邮件
  • 修正数据获取逻辑:原代码中getRange("C3:C").getValue()只会读取C3单元格的值,现在改为直接读取C列最后一行的实际值,符合需求
  • 代码可读性优化:用数组解构简化行数据的变量赋值,用模板字符串替代字符串拼接,让代码更简洁易维护
  • 修复潜在问题:将getValues()改为getValue()读取B1单元格内容,避免处理不必要的二维数组

内容的提问来源于stack exchange,提问作者Lupe.2018

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:16:05