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

如何在Google Sheets中设置单元格未更新或逾期未填写告警?

解决方案:Google Sheets 过期未更新主动告警实现

核心思路

用Google Apps Script编写检查逻辑,搭配时间驱动触发器实现后台自动巡检,无需打开Sheet就能触发告警,主动给团队推送提醒。

步骤1:编写检查脚本

  1. 打开目标Google Sheets,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑器。
  2. 替换默认代码为以下内容,根据你的实际需求修改变量值:
function checkExpiredAndUnfilled() {
  // 配置参数,按需修改
  const SPREADSHEET_ID = "你的表格ID"; // 表格URL里的ID部分
  const SHEET_NAME = "Sheet Y"; // 要检查的Sheet名称
  const DATE_CELL = "A1"; // 存放截止日期的单元格位置
  const TARGET_CELL = "B1"; // 需要检查是否空白的目标单元格位置
  const ALERT_EMAILS = ["team@example.com", "member1@example.com"]; // 告警收件人邮箱

  // 获取表格和Sheet对象
  const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  const sheet = ss.getSheetByName(SHEET_NAME);
  
  // 读取单元格数据
  const targetDate = sheet.getRange(DATE_CELL).getValue();
  const targetValue = sheet.getRange(TARGET_CELL).getValue();
  
  // 重置时间为凌晨,避免时分秒干扰判断
  const today = new Date();
  today.setHours(0, 0, 0, 0);
  targetDate.setHours(0, 0, 0, 0);
  
  // 检查条件:日期已过期 且 目标单元格为空
  if (targetDate < today && targetValue === "") {
    const formattedDate = Utilities.formatDate(targetDate, Session.getScriptTimeZone(), "MM/dd/yyyy");
    const subject = `告警:Sheet ${SHEET_NAME} 未按时更新`;
    const body = `截至 ${formattedDate},Sheet ${SHEET_NAME} 的目标单元格(${TARGET_CELL})仍未填写,请及时处理。`;
    
    // 发送告警邮件
    MailApp.sendEmail(ALERT_EMAILS.join(","), subject, body);
  }
}

步骤2:设置时间驱动触发器

  1. 在脚本编辑器左侧点击「触发器」图标(时钟样式)。
  2. 点击「添加触发器」,配置参数:
    • 运行函数:checkExpiredAndUnfilled
    • 部署类型:「基于时间的触发器」
    • 事件源:「时间驱动」
    • 时间类型:「日计时器」
    • 触发时段:比如「上午9点到10点」(按团队工作时间调整)
  3. 点击「保存」,授权脚本所需的邮件发送和表格访问权限。

步骤3:测试验证

  • 手动把日期单元格改成过去的日期,目标单元格留空,点击脚本编辑器的「运行」按钮,测试是否能收到告警邮件。
  • 等到设置的触发时段,确认触发器会自动运行并推送告警(无需打开Sheet)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:12:39