
VBA-0059 系列视频封面
不用手写多列匹配公式
让 WorkBuddy + VBA 一次写入 6 列结果
15 条销售订单,按“客户区域 + 客户等级 + 产品编码”匹配价格政策。按钮一次写入产品名称、含税单价、折扣率、成交单价、销售金额和匹配状态。
| 订单 | 匹配成功 | 未匹配 | 重复规则 |
|---|---|---|---|
| 15 条 | 12 条 | 2 条 | 1 条 |
实测匹配订单销售额合计 ¥35,172.71。重复点击按钮只刷新公式,不新增记录,也不会生成重复按钮。
一、先看工作簿:三张表各司其职
这个案例不需要窗体。用户只在“订单明细”顶部点击一个按钮,VBA 读取价格政策并把公式写回浅蓝色结果列。

订单明细:黄色区域是人工输入,浅蓝色区域等待 VBA 写入公式

价格政策:区域、等级和产品编码共同确定产品名称、含税单价与折扣率
二、普通人也能写的提示词:先说清楚“做什么”
| 工作表 | 作用 | 处理原则 |
|---|---|---|
| 订单明细 | 保存订单输入和公式结果 | 不改输入列;结果写入 G:L |
| 价格政策 | 提供三条件匹配来源 | 同一组合必须唯一 |
| 匹配规则 | 说明字段、异常和验收样例 | 作为任务说明,不写死最终统计 |
下面这段提示词没有堆砌公式,也没有预设“应该有多少条成功”。普通用户只要能说明业务规则,就可以直接交给 WorkBuddy:
请按 VBA 技能处理当前工作簿中的销售订单。读取“匹配规则”工作表,根据“客户区域、客户等级、产品编码”3个条件匹配“价格政策”,并在“订单明细”中自动写入产品名称、含税单价、折扣率、成交单价、销售金额和匹配状态的公式。未匹配或重复规则不要猜测,保留空值并标明状态;不要修改订单输入列,也不要创建窗体。请在“订单明细”顶部生成一个“批量写入匹配公式”按钮。完成后自行编译和测试,确保重复点击只刷新公式,不新增记录或重复按钮。
提示:保持 WorkBuddy 当前已经设置好的默认模型即可,不需要另外切换模型。
三、把提示词拆成 7 个可复用信息块
任务对象:当前工作簿中的销售订单,避免 AI 另做一个脱离现场的示例文件。
匹配条件:明确“区域、等级、产品编码”三列组合,防止只按一列模糊查找。
结果字段:列出产品名称、含税单价、折扣率、成交单价、销售金额、匹配状态。
异常规则:未匹配或重复规则时不猜测,结果留空并给出清楚状态。
保护边界:不修改订单输入列,不创建本案例不需要的窗体。
操作入口:在工作表顶部生成一个可重复使用的按钮。
交付标准:要求 AI 自行编译、测试,并验证重复点击的幂等性。

WorkBuddy 中的真实提问:业务语言完整呈现,默认模型保持不变
写提示词时,最值得复用的不是某个长公式,而是“异常不猜测、输入列不改、结果可重复刷新”这三条质量边界。
四、把真实 VBA 工程交给 AI

在 VBE 展开 VBAYYDS 菜单,点击“复制项目路径”
新版 VBAYYDS 的“复制项目路径”会自动导出当前 VBA 项目目录,并把路径复制到剪贴板,所以不再需要先执行一次“导出到本地”。
打开 VBE:在 WPS 表格中进入 VBA 编辑器,并保持窗口最大化,便于定位菜单。
复制项目路径:展开 VBAYYDS,点击一次“复制项目路径”。
保留现有窗口:无需关闭 WPS、VBE 或 WorkBuddy,后续可以直接往返核对。
为什么要交付工程目录?因为 AI 需要读取现有模块、工作表对象和项目说明,才能在真实项目里修改、编译、运行和继续纠错。
五、新建任务并选择工作空间
切换到 WorkBuddy 后,先新建任务,再把刚复制的项目目录选为工作空间。两个关键位置在视频和截图中都用红框突出。

第一步:点击左侧“新建任务”;保持当前默认模型

第二步:点击输入框下方固定位置的“选择工作空间”
六、WorkBuddy 如何理解并推进任务
提示词发送后,不需要逐行指导 AI 写代码。观察它是否先读取项目、识别三张工作表和三列匹配键,再进入模块编写与验证。

任务开始:读取 VBA 工程并整理匹配条件、目标列和异常要求

任务中段:分析价格政策、准备匹配模块和工作表按钮
七、AI 的“完成”要看哪些证据

WorkBuddy 最终结论:模块已交付,工作表按钮已生成,并完成重复点击验证
| 完成证据 | 本案例的验收点 |
|---|---|
| 代码落地 | 生成模块 m匹配写入.bas,并提供入口宏“批量写入匹配公式” |
| 工作表变化 | 订单明细 G:L 写入公式,顶部出现一个按钮 |
| 异常处理 | 未匹配和重复规则均不返回价格,状态列清楚标记 |
| 重复执行 | 再次点击只刷新公式,不新增订单,不重复创建按钮 |
不要只看“已完成”三个字。真正的交付必须同时满足:代码存在、工作簿变化正确、异常可见、重复执行稳定。
八、公式设计:三列唯一匹配,再写入六列结果

按钮写入后的订单明细:公式栏可见,浅蓝区域已得到匹配结果
| 列 | 写入内容 | 逻辑 |
|---|---|---|
| G | 产品名称 | 唯一匹配时从价格政策返回 |
| H–I | 含税单价、折扣率 | 同一个三列组合返回政策字段 |
| J | 成交单价 | 含税单价 × 折扣率 |
| K | 销售金额 | 成交单价 × 数量 |
| L | 匹配状态 | 匹配成功 / 未匹配 / 重复规则 |
核心判断:COUNTIFS = 1 时返回政策;COUNTIFS = 0 时标记“未匹配”;COUNTIFS > 1 时标记“重复规则”。
九、结果复核:成功、未匹配和重复规则都要看

订单明细底部:SO-260913 未匹配,SO-260914 重复规则,异常行不猜测价格
| 验证项 | 实际结果 | 判断 |
|---|---|---|
| SO-260901 | 成交单价 ¥646.00;销售金额 ¥1,938.00 | 正确 |
| SO-260913 | 状态:未匹配;结果列为空 | 正确 |
| SO-260914 | 状态:重复规则;结果列为空 | 正确 |
| 全表统计 | 12 条成功、2 条未匹配、1 条重复规则 | 正确 |
| 匹配销售额 | 合计 ¥35,172.71 | 正确 |
异常行留空比“勉强返回一个价格”更可靠。它把数据问题暴露给业务人员复核,也避免错误金额继续进入汇总。
十、重复点击也安全:把一次演示变成可复用工具

再次点击“批量写入匹配公式”,只刷新已有公式,不新增记录或按钮
可以复制到其他案例的提问模板
请按 VBA 技能处理当前工作簿中的【业务对象】。读取【规则表】,根据【匹配字段】匹配【数据来源】,并在【目标表】写入【结果字段】。遇到未匹配或重复规则时不要猜测,保留空值并标明状态;不要修改【受保护输入列】,不要创建不需要的窗体。请生成一个【按钮名称】按钮。完成后自行编译和测试,确保重复点击只刷新结果,不新增记录或重复按钮。
最终检查清单
规则唯一性:同一个组合键是否出现多条政策?
输入保护:订单号、日期、区域、等级、编码和数量是否保持不变?
公式可追溯:点选结果单元格时能否在公式栏看到来源?
重复执行:再点一次按钮,记录数和按钮数是否不变?
学会的不是一段固定代码,而是一套流程:把规则说清楚 → 把真实工程交给 AI → 让 AI 自检 → 回到 WPS 用业务样例验收。

