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

如何修复Google Apps Script库存告警脚本的邮件主题设置错误

修正Google Apps Script低库存邮件告警脚本

你的问题出在var subject = .query("C9");这行——语法完全错误,没有指定要调用的对象,而且GAS里获取单元格值也不是用query方法。下面是修正后的完整脚本,同时优化了代码结构:

function CheckSales() {
  // 先获取活动表格对象,避免重复调用
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 获取Parts工作表
  const partsSheet = ss.getSheetByName("Parts");
  
  // 读取库存值(E9)
  const monthSales = partsSheet.getRange("E9").getValue();
  
  // 检查库存是否低于阈值
  if (monthSales < 21) {
    // 获取收件邮箱地址(Sheet1的B2)
    const emailAddress = ss.getSheetByName("Sheet1").getRange("B2").getValue();
    // 获取低库存物品名称(C9)
    const itemName = partsSheet.getRange("C9").getValue();
    
    // 邮件内容和主题
    const subject = `低库存告警:${itemName}`;
    const message = `${itemName} 的库存已达到或低于最低阈值,当前库存:${monthSales}`;
    
    // 发送邮件
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

关键修改说明:

  • 移除了错误的.query("C9"),改用和获取库存值相同的方式:partsSheet.getRange("C9").getValue()来获取C9单元格的物品名称。
  • 将重复调用的SpreadsheetApp.getActiveSpreadsheet()存为变量ss,减少不必要的API调用,提升脚本效率。
  • 把getValues()改成getValue()获取邮箱地址——getValues()返回的是二维数组,单个单元格用getValue()更合适,能直接拿到字符串格式的邮箱地址。
  • 优化了邮件主题和内容,加入物品名称,让告警信息更直观。
  • 用const代替var(现代JS推荐用法,变量不会被意外重赋值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:37:50