用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

4 次浏览

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

案例 VBA 0070 活动报名查重与签到登记窗体

在活动现场,签到并不是把“未签到”改成“已签到”这么简单。每次操作还要核对活动场次、报名编号、报名状态和报名人数,并把结果同步到不同工作表。只要漏掉一个判断,就可能出现串场、取消后仍签到、超员或重复登记。

这次不手动画窗体,也不逐行敲代码。我们把业务规则说给 WorkBuddy,VBAYYDS 负责把要求落成真正的 UserForm 和 VBA 代码,再通过命令运行并验证结果。最终得到一个能查重、能预览、能写回、能回滚的签到工具。

会描述业务,就能让 Excel 开始工作

这个案例解决什么问题

传统签到表的难点不在录入,而在规则之间相互牵连。报名编号可能属于另一个场次,报名状态可能已经取消,实到人数不能超过报名人数,同一个编号也不能登记两次。人工来回翻表核对,速度慢,忙起来更容易漏。

自动化窗体把这些判断放在操作之前。工作人员先加载报名,再预览状态变化,确认无误后一次写回。每一步都有明确反馈,数据也能留下可追踪的签到记录。

人工操作难点 窗体自动完成
编号相近容易看错人员或场次 按活动场次和报名编号精确定位
取消报名仍可能被误登记 读取报名状态并立即停止操作
实到人数可能超过报名人数 预览前校验正整数和人数上限
报名表与签到表容易漏改一处 新增签到记录并同步更新报名名单
写到一半出错会留下半套数据 任一步失败自动恢复原数据

WorkBuddy 和 VBAYYDS 如何配合

工具 在本案例中的作用
WorkBuddy 理解自然语言目标,读取工作簿和业务参数,组织生成与验证流程
VBAYYDS 连接当前 VBA 工程,生成真实窗体与代码,并用命令运行宏
Excel 工作簿 保存报名名单、业务参数与签到记录,承接最终业务结果

两者的配合重点不是“帮你写一段示例”,而是把需求直接做进当前工作簿。窗体、控件、事件、校验、写回和测试都围绕真实数据展开。

用一句话描述完整目标

先在 VBA 编辑器中打开 VBAYYDS 菜单,让 WorkBuddy 能识别当前工程。随后把窗体主题、字段、按钮、业务规则和固定演示数据一次说清楚。描述越接近真实工作流程,生成结果越容易直接使用。

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

打开 VBAYYDS 菜单并连接当前 VBA 工程

这次的核心指令是:读取当前项目的 VBA、窗体技能、当前工作簿与业务参数表,生成活动报名查重与签到登记窗体。输入区包含活动场次、报名编号、签到时间、实到人数和签到方式;结果区显示报名信息与写回前后状态;同时补齐查重、取消、超员、重复签到拦截、事务写回和重开回读。

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

在 WorkBuddy 中用自然语言描述完整的签到业务

自动生成窗体和 VBA 代码

WorkBuddy 把需求拆成可执行任务,VBAYYDS 同步生成 UserForm 与完整事件代码。窗体采用明亮的 aqua tiffany 主题,录入区、只读预览区、消息区和操作按钮分区清楚,现场操作时不需要在工作表中来回找列。

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

真实 UserForm 与自动生成的 VBA 代码同步出现

区域 字段或控件 数据来源与作用
签到录入 活动场次 报名编号 签到时间 实到人数 签到方式 工作人员输入
报名预览 姓名 手机尾号 报名人数 报名状态 从报名名单读取
状态对比 签到前后 实到前后 待签到前后 预览计算并显示写回结果
追踪信息 记录编号 消息提示 自动编号并反馈当前步骤
操作按钮 加载报名 预览签到 确认写回 清空 关闭 把完整流程收进窗体

生成代码中的关键规则

窗体好看只是第一步,真正决定它能不能用的是业务代码。下面是本案例生成代码的核心节选。

加载报名时先查重

加载按钮先按报名编号定位行,再核对活动场次、报名状态和签到状态。任何一项不符合就立即返回,不让错误数据进入预览和写回阶段。

报名行 = 查找报名行(ws报名, 编号)
If 报名行 = 0 Then
设置消息 "未找到报名编号:" & 编号 & ",请确认输入。"
Exit Function
End If

If 实际场次 <> 场次 Then Exit Function
If 报名状态 = "已取消" Then Exit Function
If 签到状态 = "已签到" Then Exit Function

预览阶段校验人数与方式

预览不是摆设。代码会检查日期格式、实到人数、签到方式,并再次扫描签到记录。只有全部通过,确认写回按钮才会启用。

If CLng(Val(实到文本)) > CLng(Val(Tb报名人数.Text)) Then
校验签到输入 = "实到人数超过报名人数,禁止签到。"
Exit Function
End If

For r = 5 To 最后行
If CStr(ws记录.Cells(r, 2).Value) = 编号 Then
校验签到输入 = "签到记录已存在该报名编号。"
Exit Function
End If
Next r

写回之前再次确认状态

预览与确认之间,工作表内容仍可能被其他操作改变。因此写回前会重新加载报名,防止刚刚还未签到的数据在此期间已经被登记。

If Not 加载报名到窗体(场次, 编号) Then
Btn确认写回.Enabled = False
Exit Sub
End If
If Tb报名状态.Text = "已取消" Or Tb签到状态_当前() = "已签到" Then
Btn确认写回.Enabled = False
Exit Sub
End If

双表事务写回

确认写回后,代码先生成形如 CK20260905-001 的记录编号,再把本次签到追加到“签到记录”,同时更新“报名名单”中的签到状态、实到人数和待签到人数。两张表保持同一业务结果。

ws记录.Cells(记录行, 1).Value = 记录编号
ws记录.Cells(记录行, 2).Value = 编号
ws记录.Cells(记录行, 3).Value = 场次
ws记录.Cells(记录行, 6).Value = CDate(签到时间)
ws记录.Cells(记录行, 7).Value = 实到
ws记录.Cells(记录行, 8).Value = 方式
ws记录.Cells(记录行, 9).Value = Tb签到前状态.Text
ws记录.Cells(记录行, 10).Value = Tb签到后状态.Text

ws报名.Cells(报名行, 7).Value = Tb签到后状态.Text
ws报名.Cells(报名行, 8).Value = 实到
ws报名.Cells(报名行, 11).Value = 待签到

为了避免只写成功一张表,代码在写入前保存关键旧值。只要中途出现错误,就恢复报名行和签到记录行,并把失败原因显示给用户。

写回失败:
Application.ScreenUpdating = True
ws报名.Cells(报名行, 7).Value = 旧报名单元格(2)
ws报名.Cells(报名行, 8).Value = 旧报名单元格(3)
ws报名.Cells(报名行, 11).Value = 旧报名单元格(4)
For k = 1 To 11
ws记录.Cells(旧记录行, k).Value = 旧记录区(k)
Next k
设置消息 "写回失败已回滚:" & Err.Description

这就是事务式写回的价值:成功时两张表一起更新,失败时两张表一起恢复,不给后续统计留下不完整数据。

一次签到的真实结果

演示使用活动场次 AI办公训练营A场 和报名编号 REG-011。窗体自动读取姓名沈珊、手机尾号 1011 和报名人数 2;输入签到时间 2026-09-05 09:18、实到人数 2、签到方式二维码后,先预览再确认写回。

演示项目 实际值
活动场次与报名编号 AI办公训练营A场 REG-011
姓名与手机尾号 沈珊 1011
签到时间与方式 2026-09-05 09:18 二维码
实到人数与记录编号 2 CK20260905-001

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

窗体写回成功并在签到记录中新增一条数据

项目 写回前 写回后
签到状态 未签到 已签到
实到人数 0 2
待签到人数 2 0
签到记录 无 新增一条

异常场景必须拦住

一个业务窗体不能只演示成功路径。本案例还用真实宏逐项验证了错误场次、已取消、超员和重复签到等情况。所有宏均通过 VBAYYDS 命令运行,不依赖在 VBA 界面中手动点运行。

异常场景 自动处理
活动场次与报名记录不一致 提示正确场次并停止加载
报名状态为已取消 禁止进入预览与写回
当前状态已经是已签到 禁止重复登记
实到人数超过报名人数 给出人数上限并停止预览
签到记录中已有相同报名编号 再次查重形成双重防护
双表写回过程中发生错误 恢复原值并提示回滚原因

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

重新打开窗体后再次加载同一报名编号 重复签到被自动拦截

四步开始用嘴做 VBA

  • 说清目标 把字段 操作顺序 写回位置和异常规则说明白
  • 交给 WorkBuddy 让它读取当前工作簿并组织完整制作流程
  • 连接 VBAYYDS 自动绘制 UserForm 并生成可运行的 VBA 代码
  • 用 vbayyds cli 运行宏 对成功路径和异常路径逐项验证

真正节省时间的,不只是少敲几行代码,而是把字段、流程、校验、写回和测试一次变成可以运行的 Excel 自动化。对于规则明确的内部管理工具,WorkBuddy 加 VBAYYDS 能把“我想做一个窗体”快速推进到“这个窗体真的能工作”。

WorkBuddy 加 VBAYYDS 会说话就能做 VBA 自动化

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体

最终生成的是完整可运行的 VBA 代码 不是静态模板

用 WorkBuddy 和 VBAYYDS 制作活动报名查重与签到登记窗体插图7

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