
WorkBuddy + AI 编程案例:10 万行建筑领退料按项目拆分汇总
WorkBuddy 编写 VBA · 本地高效拆分 · 一键重算
本案例把 100,000 行工地领料、退料记录按 20 个项目拆分为独立 Excel 文件,同时输出项目汇总、项目材料汇总和导出清单。AI 负责理解自然语言需求、生成高效 VBA 并自动核对,完整明细始终在本地处理。
一 案例目标与数据结构
工作簿保存领退料明细和业务规则。VBA 保留原数据,按项目编号分组导出,并将领料记为正、退料记为负。
- 读取 100,000 条工地领料和退料记录。
- 按 20 个项目拆成 20 份 Excel 文件,每份保留表头。
- 统计项目金额和项目—材料—单位明细。
- 退料冲减数量和金额,不跨单位混加数量。
- 生成导出清单、运行核对和开始处理按钮。

图 1 运行核对显示行数、项目数、金额、耗时和一致性
二 为什么用 VBA 本地处理
AI 很适合理解业务和生成程序,但没有必要把 10 万行明细反复上传。本案例只让 WorkBuddy 读取规则、表头和少量样例,随后由 Excel VBA 在本地完成全量拆分和汇总。
| 环节 | WorkBuddy 负责 | Excel VBA 负责 |
|---|---|---|
| 理解 | 业务规则、表头和少量样例 | 保存完整业务明细 |
| 生成 | 设计拆分逻辑并编写代码 | 同步和执行代码 |
| 计算 | 不读取全部数据到对话 | 本地批量处理 100,000 行 |
| 复用 | 规则变化时再介入 | 点击按钮立即重算 |

图 2 案例说明页保留一键处理按钮,日常使用不必再问 AI
三 零基础自然语言提示词
不需要先懂数组、字典或文件导出。把实际工作中的要求直接说清楚,WorkBuddy 会完成技术方案和代码实现。
请使用vba相关技能完成以下任务,不做窗体。这里有十万行工地领料和退料记录,帮我按项目拆成各自的Excel文件,每份保留表头,再给我一份导出清单。顺便统计各项目花在各种材料上的金额,退料要冲减,不能把不同单位的数量直接加在一起。先看规则、表头和少量样例,不要把全部明细贴进对话。用高效算法批量处理,别一格一格读写。保留原数据,加一个开始处理按钮,以后换了数据可以再用。显示真实耗时,自动核对行数和合计,重复运行不要堆出重复结果。

图 3 WorkBuddy 中输入的零基础自然语言提示词
四 WorkBuddy 自动写码与核对
WorkBuddy 先识别规则和工作簿结构,再生成 VBA 模块。它把拆分、汇总、文件名清理和自检放在同一条自动流程中。
- 按项目编号分组,项目名称只用于显示和安全文件名。
- 领料加、退料减;金额按数量乘单价计算。
- 通过 VBAYYDS 命令运行宏,不从 VBE 手工点运行。
- 连续运行三次并核对行数、流水号和金额。

图 4 WorkBuddy 读取规则、编写代码并准备自动验证
五 10 万行高效算法
性能的关键是减少 VBA 与单元格逐格通信。本案例把大块数据一次读入内存,用字典完成项目和材料分组,最后批量写表和导出。
- Value2 一次读取完整明细区域。
- 一次遍历累计项目行数、领料金额、退料金额和净金额。
- 项目+材料编号+单位作为数量汇总键,避免不同单位混加。
- 数组批量写回项目汇总、材料汇总和导出清单。
- 项目名称中的斜杠、冒号等字符在文件名中自动安全替换。

图 5 WorkBuddy 生成的 VBA 使用数组、字典和批量写入
六 真实运行结果
| 检查项 | 计算口径 | 实际结果 |
|---|---|---|
| 输入行数 | 领退料明细读取数 | 100,000 |
| 项目数量 | 唯一项目编号 | 20 |
| 导出文件 | 每个项目一份 | 20 |
| 拆分行数 | 20 个文件明细合计 | 100,000 |
| 唯一流水 | 去重后的流水编号 | 100,000 |
| 重复流水 | 重复编号数量 | 0 |
| 领料金额 | 领料记录金额合计 | 1,074,894,322 元 |
| 退料金额 | 退料记录金额合计 | 94,606,883 元 |
| 净金额 | 领料减退料 | 980,287,439 元 |
| 真实耗时 | 读取、汇总和导出 | 14.74 秒 |
自动核对:输入、拆分和唯一流水均为 100,000;重复为 0;项目、材料和总表净金额完全一致。

图 6 100,000 行约 15 秒处理完成,全部核对一致
七 20 份项目文件与汇总表
项目汇总同时记录领料金额、退料金额、净金额和导出文件名。文件名清理只影响磁盘文件,不会把不同项目合并。
| 输出 | 数量 | 用途 |
|---|---|---|
| 项目文件 | 20 份 | 给各项目单独使用,保留原明细表头 |
| 项目汇总 | 20 行 | 比较各项目领料、退料与净金额 |
| 项目材料汇总 | 按项目和材料分组 | 查看材料数量、单位和金额 |
| 导出清单 | 20 行 | 记录路径、明细行数和导出状态 |
| 运行核对 | 1 张 | 检查行数、流水、金额和耗时 |

图 7 项目汇总列出 20 个项目及其安全导出文件名
八 以后只需点一下按钮
VBA 已经固化在工作簿里。后续更新领退料数据时,不需要重新向 AI 描述同一套需求。
1. 替换领退料明细中的新数据。
2. 保持工作表名和标准列名不变。
3. 点击开始处理按钮。
4. 查看运行核对、三张汇总表和新的导出清单。

图 8 WorkBuddy 确认连续三次运行完全一致,并预览真实项目文件
结语
WorkBuddy 的价值不是替用户手工拆一次表,而是把业务规则变成可执行、可验证、可重复使用的 Excel VBA 工具。完整数据留在本地,AI 负责理解需求、写代码和核对,零基础也能完成十万行建筑领料拆分与汇总。

