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

Google Sheets AppsScript需求:特定单元格变为FALSE时发送邮件

解决Google表格F2单元格从TRUE变FALSE时发送邮件提醒的问题

没问题,我帮你搞定这个需求!因为F2是带IF函数的动态单元格,直接用简单的触发器没法精准捕捉状态变化,我们需要记录上一次的状态来做对比,下面是完整的实现步骤:

1. 编写Apps Script代码

打开你的Google表格,点击顶部菜单栏的「扩展」→「Apps脚本」,把默认代码删掉,粘贴下面的代码:

function checkF2Status() {
  // 获取目标工作表
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("HealthMon");
  if (!sheet) {
    console.log("找不到名为HealthMon的工作表,请检查工作表名称是否正确");
    return;
  }
  
  // 获取F2单元格的当前布尔值(IF函数返回的就是TRUE/FALSE,直接取值即可)
  const currentStatus = sheet.getRange("F2").getValue();
  // 从脚本属性中获取上一次记录的状态,首次运行默认设为TRUE
  const scriptProps = PropertiesService.getScriptProperties();
  const previousStatus = scriptProps.getProperty("f2LastStatus") === "true";
  
  // 核心判断:当前状态是FALSE,且上一次是TRUE(也就是发生了从TRUE到FALSE的变化)
  if (!currentStatus && previousStatus) {
    // 配置邮件信息,替换成你的收件邮箱
    const recipient = "your-email@example.com";
    const subject = "HealthMon表格状态提醒:F2已从TRUE变为FALSE";
    const body = `
    您好,
    您的Google表格「HealthMon」工作表中的F2单元格,已从TRUE状态变为FALSE状态,请留意!
    `;
    
    // 发送邮件
    MailApp.sendEmail(recipient, subject, body);
    console.log("状态变化邮件已成功发送");
  }
  
  // 更新脚本属性中的状态记录,把当前值存进去
  scriptProps.setProperty("f2LastStatus", String(currentStatus));
}

2. 设置触发器(关键步骤)

代码写完后,我们需要设置一个触发器,让脚本在表格有变化时自动运行:

  • 在Apps Script界面左侧,点击时钟形状的「触发器」图标
  • 点击右下角的「添加触发器」,按以下配置:
    • 选择要运行的函数:checkF2Status
    • 选择事件源:「从电子表格」
    • 选择事件类型:「更改时」
  • 点击保存,此时会弹出授权窗口,按提示完成授权(需要允许脚本访问你的表格和邮箱)

3. 注意事项

  • 首次运行脚本时,因为之前没有记录状态,默认会把上一次状态设为TRUE,所以如果当前F2是FALSE,首次运行不会发邮件,只有当它从TRUE变成FALSE时才会触发
  • 确保你的Google账号允许发送邮件(个人账号默认都支持,企业账号可能需要管理员授权)
  • 如果修改了工作表名称,记得同步修改代码里的"HealthMon"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:25:18