
WorkBuddy + AI 编程案例:10 万行物业水电抄表复核
WorkBuddy 编写 VBA · 异常读数复核 · 一键重算
本案例用 WorkBuddy 把自然语言需求变成 Excel VBA 工具,在本地处理 100,000 行物业水电抄表记录。程序自动计算用量、单价和应收金额,并将漏抄、换表和读数倒退转入待复核清单。
一 案例目标与数据结构
工作簿包含案例说明、抄表明细和收费标准。VBA 保留原数据,使用表类型与用途查单价,然后按楼栋、月份汇总。
- 读取 10,000 只表的 10 个月份,共 100,000 行。
- 水用量与电用量分开统计,不混合不同单位。
- 正常记录计算用量和应收费用。
- 漏抄、换表、读数倒退单独进入待复核记录。
- 生成有效用量费用、楼栋月报、待复核记录和运行日志。

图 1 运行日志对行数、用量、应收金额和异常分类逐项核对
二 为什么用 VBA 本地处理
AI 适合理解规则和生成代码,但不必把 10 万行明细全部贴进对话。WorkBuddy 只查看规则、表头和少量样例,真正的全量计算由 Excel VBA 在本地完成。
| 环节 | WorkBuddy 负责 | Excel VBA 负责 |
|---|---|---|
| 理解 | 识别抄表规则、表头和收费口径 | 保存完整的本地明细 |
| 生成 | 设计数组、字典与核对逻辑 | 同步并执行 VBA 模块 |
| 计算 | 不把全表载入对话 | 批量处理 100,000 行 |
| 复用 | 规则变化时再介入 | 点击按钮立即重算 |

图 2 案例说明页保留“开始处理”按钮,日常换数据后可直接复用
三 零基础自然语言提示词
不需要先学会 VBA 语法。把物业实际业务里的要求直接说清楚,WorkBuddy 会读取工作簿并完成技术实现。
请使用vba相关技能完成以下任务,不做窗体。物业有十万行水电抄表记录,帮我按楼栋和月份算用量、应收费用。读数倒退、漏抄和换表的记录单独列出来,不要随便算成零。水和电分别统计,单价按收费标准表来。先看规则、表头和少量样例,不要把全部明细贴进对话。用高效算法批量处理,别一格一格读写。保留原数据,加一个开始处理按钮,显示真实耗时,自动核对行数和合计,重复运行不要堆出重复结果。

图 3 WorkBuddy 中输入的零基础自然语言提示词
四 WorkBuddy 不只写代码,还主动查错
WorkBuddy 在生成和验证时主动发现两个关键边界:空白单元格可能在 VBA 中被转换为 0,以及 ReDim Preserve 不能改变数组第一维。它修正后重新同步、运行并校验。
- 漏抄的空白读数不按 0 计算用量。
- 换表依赖抄表说明判断,不会被读数大小误导。
- 读数倒退依据“此次小于上次”转入复核。
- 通过 VBAYYDS 命令运行宏,不从 VBE 手工点运行。

图 4 WorkBuddy 在核对中主动发现空白读数的 VBA 转换风险
五 10 万行高效算法
性能的关键是减少 VBA 与单元格的逐格通信。本案例一次读入明细,用字典查询单价和完成楼栋月份聚合,最后一次性写回结果。
- Value2 一次读取数据区域。
- 用表类型+用途作为收费标准查找键。
- 用楼栋+月份作为汇总键,水费、电费和待复核数分开累计。
- 应收金额按单条记录四舍五入到分,再汇总。
- 数组批量写回四张结果表,重复运行时先重建旧结果。

图 5 WorkBuddy 生成的 VBA 使用数组、字典与批量写回
六 异常记录如何处理
| 异常类型 | 数量 | 处理口径 |
|---|---|---|
| 漏抄 | 101 | 读数缺失,不算成零用量 |
| 换表 | 80 | 依赖抄表说明识别,原样保留上次与此次读数 |
| 读数倒退 | 53 | 此次读数小于上次读数,不直接计费 |
| 待复核合计 | 234 | 三类全部写入待复核记录 |
重要:空白、换表和倒退都不参与正常用量和均值计算,避免产生虚假零用量或负用量。

图 6 待复核记录保留表号、读数、抄表说明和异常类型
七 真实运行结果
| 检查项 | 计算口径 | 实际结果 |
|---|---|---|
| 输入行数 | 10,000 只表 × 10 个月 | 100,000 |
| 有效记录 | 读数齐全且当期不小于上期 | 99,766 |
| 待复核记录 | 漏抄+换表+倒退 | 234 |
| 楼栋月份分组 | 50 个楼栋 × 10 个月 | 500 |
| 水用量 | SumIf 独立复核 | 823,822 立方米 |
| 电用量 | SumIf 独立复核 | 10,726,976 kWh |
| 水费 | 逐条计费后汇总 | 2,741,487.20 元 |
| 电费 | 逐条计费后汇总 | 7,048,042.56 元 |
| 应收合计 | 水费+电费 | 9,789,529.76 元 |
| 真实耗时 | 读取、计算、写回和核对 | 3.70–3.94 秒 |
自动核对:100,000 = 99,766 + 234;楼栋月报 500 行;明细与月报的用量、应收金额全部一致。

图 7 楼栋月报分别列示水用量、电用量、费用、有效数和待复核数
八 以后只需点一下按钮
VBA 已经固化在工作簿里。后续更新抄表数据后,不需要重新向 AI 描述同一套需求。
1. 替换“抄表明细”中的新数据。
2. 保持工作表名和标准列名不变。
3. 点击“开始处理”按钮。
4. 查看有效用量费用、楼栋月报、待复核记录和运行日志。

图 8 WorkBuddy 记录真实耗时、异常分类和应收合计
结语
WorkBuddy 的价值不是临时替用户算一次表,而是把收费口径、异常复核和自动核对固化为可重复使用的 Excel VBA 工具。完整数据留在本地,AI 负责理解需求、写代码和主动查错,零基础也能完成 10 万行物业水电抄表复核。

