用 WorkBuddy 和 VBAYYDS 制作商品入库窗体

3 次浏览

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体

在 Excel 里做一张商品入库单,能不能直接说需求,让 AI 画好窗体、写好代码,再自己点按钮测试?这个案例用 WorkBuddy 配合 VBAYYDS,把商品搜索、信息回填和多商品入库串了起来。

不必先记住控件名称。你可以用语音输入告诉 WorkBuddy:“供应商从表里选,商品弹窗搜索,选好后带回名称和规格。”本次演示使用自然语言提示词;语音只是输入需求的一种方式,并不改变后面的业务验证。

最终示例将 10 包打印纸和 2 盒中性笔写入同一张入库单,形成两条明细,合计 316 元。本文保留真实提示词、关键代码和测试结果,方便照着复现。全部商品与供应商均为虚构教学数据。

先让表格提供选项和商品资料

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体

图1 商品档案提供商品ID 名称 规格 单位和参考进价

商品名称、ID 和规格必须来自同一条档案。若让使用者分别手输,名称选对、ID 填错也可能保存成功。因此,本案例用搜索结果整行回填商品信息,数量和单价再由使用者输入。

工作表 本案例中的用途
商品档案 保存 12 种商品及参考进价,为搜索窗体提供数据
基础选项 保存 3 个供应商和 3 个仓库,供主窗体下拉选择
入库明细 按每件商品一行,追加单号、日期及商品数量金额
业务规则 描述输入和保存约束,供实现与验收对照

源表第 4 行是字段行,数据从第 5 行开始。当前代码按固定列读取,没有自动识别任意表头的能力。基础选项遇到第一个空白就结束读取,因此不要在有效选项中间留空行。

业务规则表用于说明要求,实际校验写在 VBA 事件中;修改规则表不会自动改变程序行为。首次复现应先保留现有表名和列顺序,用测试副本验证后再调整。

用自然语言说清楚想做什么

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体

图2 WorkBuddy 中实际输入的首轮需求

实际提示词

请使用vba相关技能 使用vba窗体完成以下任务。窗体采用紧凑布局,控制窗体高度,所有输入框、列表和底部按钮要在一屏内完整显示,文字保持清楚。帮我做一个商品入库单:供应商和仓库从表里下拉选。选商品时弹出搜索窗口,输入关键词,选中后带回商品名称、ID和规格。填数量和单价,能连续加几种商品,最后保存到表里。使用明亮浅色的清爽蓝白(office-clean)主题。先给我看入库单窗体预览,确认后再看商品搜索窗体。

“使用 vba 相关技能”明确工具方向,避免只得到一段建议。“商品入库单”说明目标;“从表里下拉选”给出数据来源,不用先讲控件或变量。

“带回名称、ID 和规格”要求选中整条商品,避免只回填名称。“紧凑布局、一屏完整显示”约束窗体高度,不能靠缩小文字掩盖按钮被挤出屏幕的问题。“先给我看预览”把外观检查放在业务逻辑之前。

首轮提示没有枚举每一列和全部边界值。当前工作簿与业务规则提供上下文,后续再要求搜索、加入清单、保存和重开测试。简短不等于省略验收;缺少测试要求,很容易只确认“窗体看起来做出来了”。

让 AI 生成窗体并实际操作测试

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体

图3 WorkBuddy 的完成摘要用于定位产物 功能结论仍需核对实际运行

WorkBuddy 负责组织需求、生成代码和修改问题;VBAYYDS 提供 VBA 窗体生成及 UITest 操作能力。语音或自然语言描述可以自动生成窗体;生成后的窗体可在 VBA 中手动编辑和微调。

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体

图4 紧凑入库窗体中已加入两种商品 合计金额为316元

UITest 可以按控件完成输入、选择和按钮点击,让 AI 不只写代码,还能验证搜索与保存。本次商品搜索、选择回填、数量输入、加入清单和保存都使用了这类测试;供应商与仓库下拉选择有人工鼠标辅助。

看懂搜索和保存的关键代码

调试中发现搜索窗体再次获得焦点时会清空状态。问题定位后,WorkBuddy 将重置动作改成打开搜索前才执行,再复测回填与保存。这里不能把“执行自动测试”理解成所有问题都由 AI 独立发现并解决。

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体

图5 最终VBA代码中可见逐行写回和清空清单逻辑

搜索覆盖 ID、名称和规格,先统一大小写并清除关键词首尾空格,再做包含匹配。下面为最终代码原样节选:

kw = LCase$(Trim$(CStr(TbKeyword.Value)))
hay = LCase$(m_Data(r, 0) & "|" & m_Data(r, 1) & "|" & m_Data(r, 2))
If kw = "" Or InStr(1, hay, kw) > 0 Then

主窗体在显示搜索窗体前调用“准备搜索”,只有确认选中商品才回填。取消搜索不覆盖主窗体已有商品。原样节选如下:

Call frm商品搜索.准备搜索
frm商品搜索.Show
If gSelChosen Then
    TbName.Value = gSelName
    TbId.Value = gSelId
    TbSpec.Value = gSelSpec

加入清单时,数量必须是大于零且不超过 999999 的整数,单价必须是非负数字。保存前检查供应商、仓库、日期和清单;通过后逐行追加到“入库明细”,保存工作簿,再清空待提交清单。立即再点保存会被空清单校验拦住。

用明细记录核对测试结果

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体

图6 入库明细保留同一单号下的两行记录 数量和金额与窗体一致

示例单号为 RK20260908001,日期为 2026-09-08,供应商为晨光办公供货商,仓库为主仓库。P002 打印纸为 10 × 28=280 元;P004 中性笔为 2 × 18=36 元。A5:K6 保存两条明细,合计 316 元,下面的检查区域 A7:K12 为空。

实际检查 观察到的结果
按名称 规格 ID 搜索 打印纸、80g、P002/P004 可定位对应商品
无匹配词和未选中就确认 显示无匹配结果或要求先选择一行
清空搜索与取消选择 清空后显示 12 种商品;取消不替换主窗体已有商品
数量为0或单价为负数 阻止加入清单,显示对应提示
连续加入并保存两种商品 写入两行,合计 316 元,清单清空
保存后立即再次保存 提示清单为空,没有新增重复行
关闭再打开窗体 已保存两行仍在;本项不是关闭重开整个工作簿测试

测试时既要看提示,也要看表里有没有多写、少写或错写。单次运行正确不代表所有边界已覆盖;小数数量、超大数值、删除行、异常保存等仍应按实际使用要求继续补测。

换成自己的业务时怎么提需求

可复用提示模板

请使用vba相关技能 使用vba窗体完成以下任务。帮我根据当前工作簿做一个【业务单据】。先读取已有数据和规则,选项从【选项表】里选。选择【对象】时弹出搜索窗口,按【名称、编号或规格】找,选中后带回对应信息。填写【数量等字段】,可以连续加入多条,最后保存到【结果表】。窗体布局紧凑,字要清楚,所有按钮一屏显示。先给我看预览。功能完成后,用VBAYYDS的uitest能力测试正常输入、错误输入、取消、重复保存和重开,并核对结果表有没有写错。

把方括号换成自己的业务名称即可。比如领料单可以搜索物料,报销单可以搜索费用项目。先说明使用者要做什么、数据从哪里来、什么情况下不能保存,再让 AI 根据工作簿落实细节。

发现偏差时,用“看到的错误+正确目标+如何验收”继续说。例如:“取消搜索后,主窗体原来的商品不能变。请修改,再选另一种商品后点取消,检查原来的商品还在。”这种描述无需知道事件名称,也能明确修复目标。

当前版本适合单人教学演示。单号按已有明细行数生成,两条明细保存后下一编号会跳到 003,并非严格按单据数量连续编号。删除历史行或多人同时写入时,不能据此保证编号唯一。

保存过程没有事务回滚;清空清单只拦截紧接着的重复保存,不是跨会话防重复机制。正式使用前,还应补齐金额精度、写入失败恢复、编号策略和备份规则,再用自己的数据副本验收。

这个案例最值得复用的做法,是让 AI 把“画窗体、写代码、点控件测试”连起来。零基础也能从说清需求开始,但商品资料、业务规则和最终结果,仍要由使用者确认。

用 WorkBuddy 和 VBAYYDS
制作商品入库窗体插图7

工具名称:VBAYYDS语音编程助手
适合人群:常用Excel且希望自动化操作但不想深学VBA的职场人
体验方式:下载地址vbayyds.com
✨ 让Excel听懂你的需求,或许只需要一次尝试。
✨ 你的时间,值得用在更值得的事情上。
官网下载地址 vbayyds.com
淘宝搜索 vbayyds
购买方式 加微信EXCEL880B
用 WorkBuddy 和 VBAYYDS
制作商品入库窗体插图8