用WorkBuddy和VBAYYDS 制作并测试VBA登录窗体

3 次浏览

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体

Excel 表里已经存好了账号、密码和姓名,怎样给它加一个能输入、验证和提示结果的登录窗口?这个案例用 WorkBuddy 配合 VBAYYDS,先生成真实 VBA 窗体,再补齐登录代码,最后用 UITest 自动输入账号密码、点击按钮,核对窗体返回的结果。

不需要先学会给控件起名或编写事件过程。你可以直接用嘴说需求,通过语音输入提示词;先看设计是否合适,再确认功能。本篇结合实际提示词、生成代码和测试记录,说明每一步该交代什么、该检查什么。

本次使用 WPS 表格运行 Excel 宏工作簿,文件为 .xlsm。账号表保持可见,数据均为虚构教学数据。这个登录窗口用于学习本地表单交互,不是保护真实账号密码的安全认证系统。

1 先把账号表和登录规则说清楚

工作表名为“账号设置”,A4:C4 是表头,A5:C7 放了三组演示记录。账号和密码列预先设为文本,避免 0007 和 001073 被当成数字而丢掉开头的零。

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体

图1 实际账号设置表 三组凭据均为虚构演示数据

账号 演示密码 姓名
demo001 Demo@073 林晓
demo002 Start@073 陈晨
0007 001073 许悦

窗体每次登录都从当前工作簿读取这张表,不把账号密码写死在代码里,也不改写源数据。账号忽略首尾空格和大小写;密码按原样比较,区分大小写,不去掉空格,也不转成数字。

界面只保留两个输入框、登录、清空、取消三个按钮,以及提示区域。密码用星号显示;输错统一提示“账号或密码错误”;正确时显示欢迎和对应姓名。登录校验成功或失败后都会清空密码,清空按钮则同时清掉两个输入框。

把这些规则先说清楚,AI 才知道“能登录”具体意味着什么。这里不增加注册、改密、登录日志或权限管理,先把一个小功能做完整。

2 直接用自然语言提出需求

在 VBA 中通过 VBAYYDS 菜单获取项目路径,把项目文件夹加入 WorkBuddy 任务,让它能读取当前工作簿的导出信息和相关技能。下面是本次实际发送的首轮提示词,保留原文。

请使用vba相关技能 使用vba窗体完成以下任务。
帮我给这个Excel做一个登录窗口,账号密码从“账号设置”表读取。密码显示成星号,输错要提醒,正确就显示欢迎和姓名,还能清空或取消。使用柔和蓝白(office-gentle)主题,明亮浅色外观。先给我看窗体设计。

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体

图2 WorkBuddy 中实际发送的首轮需求

这段话先指定 VBA 技能和登录窗口这个目标,再交代数据来自哪里、按钮要做什么,以及希望的外观。最末一句“先给我看窗体设计”让任务停在可确认的界面阶段。括号中的主题名是本案例选定的样式,零基础使用者也可以只说“柔和的蓝白色,明亮一点”。

项目文件夹提供工作簿上下文,提示词提供业务意图,两者需要配合。自动测试并不在这一轮要求里,而是在确认设计后的下一轮提出,避免把后续补充内容误认为首轮已经包含。

3 先确认窗体再生成登录代码

WorkBuddy 调用窗体相关技能生成蓝白色设计预览,包含两个输入框、三个按钮和标签,共九个控件。确认后生成的是可以继续在 VBA 中编辑的真实 UserForm,不是一张只能观看的界面图片。

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体

图3 WorkBuddy 生成的登录窗体设计预览

确认设计之后,再要求它补齐登录逻辑,并使用 VBAYYDS 的 UITest 自动输入账号密码、点击按钮,检查空输入、错误输入、正确登录、清空和关闭重开。当前环境是 WPS,运行宏使用 VBAYYDS CLI,不需要到 VBA 界面点击运行按钮。

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体

图4 WorkBuddy 已写入登录代码并准备开展测试 此时不代表测试全部通过

4 看懂代码如何连接表格和窗体

标准模块 m登录 中的 Main 显示 frmLogin,窗体代码负责按钮响应和输入状态。自动测试使用 VBAYYDS 提供的可操作窗体入口,与普通显示入口有所区别。

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体

图5 VBA 中生成的查表代码 每次登录读取账号设置

Btn登录_Click 先检查空输入,再调用 取姓名 查找记录。查找函数从第 5 行循环到账号列最后一个非空行,读取账号、密码和姓名。下面摘录实际比较部分。

表账号 = Trim(ws.Cells(r, 1).Text)
表密码 = ws.Cells(r, 2).Text
表姓名 = ws.Cells(r, 3).Text
If LCase(表账号) = LCase(账号) Then
    If 表密码 = 密码 Then
        取姓名 = 表姓名
        Exit Function
    End If
End If

这里 .Text 读取单元格显示文本,配合预设文本格式保留前导零,因此表格格式和列宽也属于使用条件。账号先转小写比较,密码不做转换;当前模块默认按二进制方式比较字符串,所以密码区分大小写。

初始化和清空按钮共用 重置输入;取消按钮执行 Unload Me。重新打开时再次初始化,避免残留旧提示和密码。

5 用自动输入和点击验证业务结果

WorkBuddy 通过 UITest 发现控件、输入内容、点击按钮并读取提示。下表汇总录制及后续补充核验的九项业务结果,不代表全部由 WorkBuddy 单独完成。

检查项 实际结果 核验
账号密码为空 请输入账号和密码 通过
demo001 使用错误密码 账号或密码错误 通过
demo001 使用 demo@073 账号或密码错误 通过
使用未知账号 账号或密码错误 通过
demo001 正确登录 登录成功,欢迎林晓 通过
demo002 正确登录 登录成功,欢迎陈晨 通过
0007 使用 001073 登录成功,欢迎许悦 通过
点击清空 两项输入为空并恢复提示 通过
取消后重新打开 输入为空并恢复提示 通过

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体

图6 自动点击登录后的真实成功提示 密码已被清空

七次密码输入命令出现回读不一致的工具错误,但实际已输入,后续点击和提示读取验证了业务结果。因此是“九项业务检查通过”,并非“所有命令无错误”。过程中有人工确认和纠正。

6 复用前需要注意的边界

当前实现用非空姓名代表匹配成功,因此姓名留空时,即使账号密码匹配,也会显示失败。账号表缺失或没有数据时,查找函数返回空字符串,没有专门区分配置错误与登录失败。它也没有重复账号检查。这些是从代码可见的限制,并未在本次九项测试中逐项验证。

复用时应保证账号唯一、姓名完整,并补测缺表、重复账号、空姓名、账号首尾空格等边界。如需改变表头行号、工作表名或登录后行为,把变化直接告诉 WorkBuddy,再运行相应测试,不要只修改界面文字。

星号只是遮住屏幕上的密码,工作表里仍然是明文。隐藏工作表也不会把它变成可靠的安全认证。不要把真实业务密码直接放进这个教学文件;有真实权限或敏感数据保护需求时,需要另行设计安全方案。

下面的提示词可作为下一次练习的起点。它是整理后的可复用模板,不是本次首轮原文。

请使用vba相关技能 使用vba窗体完成以下任务。
帮我给这个Excel做一个登录窗口,从我准备好的账号表里读取账号、密码和姓名。密码显示星号,输错提醒,正确就显示欢迎和姓名。加上登录、清空和取消按钮,使用明亮的蓝白色。先给我看窗体设计,等我确认后再写代码。
代码完成后,请用VBAYYDS的uitest技能自动输入、点击按钮并检查结果。测试没填内容、输错密码、正确登录、清空和关闭后重新打开。告诉我哪些通过、哪些没测、哪些需要我确认,不要改动账号表里的数据。

这个案例可以复用的是协作方式:先说清楚需求,确认真实窗体,再让 AI 写代码和执行测试。生成的窗体和 VBA 代码都可以继续修改;测试结论及实际使用边界仍需由使用者核对。

用WorkBuddy和VBAYYDS
制作并测试VBA登录窗体插图7

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