如何为Google Sheets编写脚本实现库存低于阈值时自动发提醒邮件
修改后可实现批量遍历的完整代码
function CheckParts() { const ss = SpreadsheetApp.getActiveSpreadsheet(); // 获取库存表全量数据 const masterSheet = ss.getSheetByName("Master List"); const allData = masterSheet.getDataRange().getValues(); const alertList = []; // 跳过表头,从第2行(数组索引为1)开始逐行校验 for (let i = 1; i < allData.length; i++) { const row = allData[i]; const partPN = row[0]; // 零件编号PN在A列,数组索引从0开始,可根据实际表格列位调整 const currentStock = row[6]; // 现有库存列在G列,可调整 const minStock = row[7]; // 最低库存阈值在H列,对应原代码配置 // 库存低于阈值时计算待补数量 if (currentStock < minStock) { const needCount = minStock - currentStock; alertList.push(`${partPN} Needs ${needCount} Made`); } } // 存在缺料零件时触发邮件 if (alertList.length > 0) { const emailAddress = ss.getSheetByName("Sheet1").getRange("B2").getValue(); const subject = 'Low Parts Alert'; const message = alertList.join('\n'); MailApp.sendEmail(emailAddress, subject, message); } }
调整说明
- 代码中
partPN = row[0]、currentStock = row[6]的索引值可根据实际表格列位修改,数组索引从0开始计数,对应表格列号减1,例如B列对应索引1 - 当前默认将所有缺料信息合并为单封邮件发送,若需要每个零件单独发提醒,将发邮件逻辑移入遍历循环内即可
原代码问题修复
- 修复变量名拼写错误(
valule→value) - 修复错误比较逻辑(原代码错误将数值和Range对象直接对比)
- 修复未定义变量
monthSales的问题
内容的提问来源于stack exchange,提问作者benthelemon
相关产品推荐
相关产品推荐

