Google Sheets脚本如何按不同品类库存阈值条件复制对应行
调整后完整脚本
function onEdit(event) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = event.source.getActiveSheet(); var r = event.source.getActiveRange(); // 仅处理Stock表D列的编辑操作 if(s.getName() == "Stock" && r.getColumn() == 4) { var currentRow = r.getRow(); // 读取当前行A列的品类值 var category = s.getRange(currentRow, 1).getValue(); var stockNum = r.getValue(); var triggerThreshold = 0; // 按品类匹配阈值 if(category == "Power Tools") { triggerThreshold = 5; } else if(category == "Hand Tools") { triggerThreshold = 10; } else { // 其他品类不触发操作,直接退出 return; } // 满足阈值条件时复制行 if(stockNum <= triggerThreshold) { var numColumns = s.getLastColumn(); var targetSheet = ss.getSheetByName("Orders"); var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); s.getRange(currentRow, 1, 1, numColumns).copyTo(target); } } }
关键修改说明
- 新增了当前编辑行A列品类的读取逻辑,不再使用统一阈值判断
- 新增品类分支匹配规则,分别对应两个品类的库存阈值要求
- 新增其他品类的退出逻辑,避免无效操作占用资源
- 补全了原有代码缺失的函数入口声明,避免脚本无法被触发器识别调用
生效验证步骤
- 替换原有脚本代码后保存,授予脚本必要的表格读写权限
- 删除原有旧触发器,重新创建可安装编辑触发器,触发事件源选「电子表格」,事件类型选「编辑时」
- 测试验证:分别修改Power Tools行D列数值为5、Hand Tools行D列数值为10,确认两行均能成功复制到Orders表
内容的提问来源于stack exchange,提问作者paweł sokolowski
相关产品推荐
相关产品推荐

