求基于特定条件自动汇总车辆数量的VBA解决方案
汇总零件编号对应车辆总数量的VBA代码
下面是实现需求的VBA代码,可遍历A3:A6的零件编号,自动汇总对应零件关联的L列车辆数量总和:
Sub SumPartVehicleQty() Dim ws As Worksheet Dim partRange As Range, cell As Range Dim lastRow As Long Dim totalQty As Double Dim i As Long ' 指定操作的工作表,按需修改表名 Set ws = ThisWorkbook.Worksheets("Sheet1") ' 定义要处理的零件编号范围A3:A6 Set partRange = ws.Range("A3:A6") ' 获取数据区域的最后一行(假设零件编号存放在B列,按需调整列标) lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' 遍历每个目标零件编号 For Each cell In partRange totalQty = 0 ' 遍历所有数据行,匹配零件编号并累加L列数值 For i = 2 To lastRow ' 假设第1行是表头,按需修改起始行号 If ws.Cells(i, "B").Value = cell.Value Then totalQty = totalQty + ws.Cells(i, "L").Value End If Next i ' 将汇总结果写入零件编号右侧单元格(可修改Offset参数调整输出位置) cell.Offset(0, 1).Value = totalQty Next cell MsgBox "汇总完成!" End Sub
关键调整说明:
- 把
Sheet1改成你实际的工作表名称 - 如果零件编号的记录列不是B列,将
ws.Cells(i, "B")替换为对应列标(比如"C") - 若数据起始行不是第2行,修改
For i = 2 To lastRow中的起始数字 - 汇总结果默认输出到零件编号右侧一列,调整
cell.Offset(0, 1)的第二个参数可更改位置(比如0,3代表向右3列)
使用步骤:
- 打开目标Excel文件,按
Alt + F11打开VBA编辑器 - 右键点击工程窗口中的工作簿名称 → 插入 → 模块
- 粘贴上述代码并调整参数
- 按
F5运行代码,或回到Excel界面通过「开发工具→宏」执行
内容的提问来源于stack exchange,提问作者Hope99
相关产品推荐
相关产品推荐

