用 WorkBuddy 和 VBAYYDS 完成学生随机排考

3 次浏览

250名学生,你不会还在用手一个个地排吧?把学生名单和考场规则准备好,用自然语言告诉 WorkBuddy 要什么,就可以借助 VBAYYDS 语音编程生成 VBA,让表格完成随机分配和座位图绘制。本文用一个不涉及窗体的案例,讲清怎么提需求、代码做了什么,以及怎样确认没有重复或漏人。

用 WorkBuddy 和 VBAYYDS
完成学生随机排考

本例有5个班,每班50人;5个考场,每场10排5列。输出是一份250行的排考名单和5张座位图。5个班的学生一起打乱,不要求每个考场各班恰好10人,也不限制同班相邻。

用 WorkBuddy 和 VBAYYDS
完成学生随机排考

图1 原始名单保留学号、姓名和班级,学号01001的前导零需要保留。

把需求交给 WorkBuddy

先打开已经准备好的案例工作簿,进入 VBA 编辑器,在 VBAYYDS 菜单中复制项目路径。然后到 WorkBuddy 新建任务,加入刚才复制的项目文件夹,让它可以读取当前工作簿和项目代码。

用 WorkBuddy 和 VBAYYDS
完成学生随机排考

图2 实际输入的需求说明人数、考场、座位图和重新随机的规则。

可以直接用嘴说需求,通过语音输入把下面这段话放入输入框。发送前检查数字和表名是否识别正确,不需要先学会编写 VBA。

实际提示词

请使用vba相关技能完成以下任务,不用窗体。表里有5个班,每班50名学生。帮我按学号随机打乱,分到5个考场,每场50人,10排5列,不能重复也不能漏人。生成排考名单,再给每个考场画一张座位图,标清讲台、座号、学号、姓名和班级,每场一页方便打印。再次随机要更新名单和座位图,但不要改原始学生资料。用明亮浅色的晴空蓝主题,做好后运行并核对人数和座位。运行宏请使用vbayyds命令行。

“不用窗体”限定了产物;“不能重复也不能漏人”给出验收底线;“不要改原始学生资料”限定修改范围。最后要求运行并核对,让任务不止停在生成一段代码。提示词先说业务目标,出现偏差后再补充具体问题和正确结果。

AI生成的代码怎样排座位

WorkBuddy 根据当前项目生成业务模块,VBAYYDS 负责连接 VBA 项目并执行宏。运行后要查看实际工作表,不能只把 AI 的完成摘要当作验收结果。

用 WorkBuddy 和 VBAYYDS
完成学生随机排考

图3 WorkBuddy展示最终完成状态及测试摘要,数据结果还需独立核对。

主要业务集中在“m排考”模块。入口“生成排考与座位图”依次读取学生、校验考场、随机分配、写名单、画座位图,再核对结果。读取学生时检查缺失字段和重复学号;分配前检查总座位是否足够。输入有问题就先终止,不进入结果改写。

程序打乱学生索引,再按考场容量依次取人,避免重复抽取。重新随机可能保留个别原座位,并不保证人人换座。以下为原码节选,省略数组初始化和结果写入部分。

Randomize
For i = 总人数 To 2 Step -1
j = Int(Rnd * i) + 1
临时 = 顺序(i)
顺序(i) = 顺序(j)
顺序(j) = 临时
Next i

名单和座位图使用同一份结果

用 WorkBuddy 和 VBAYYDS
完成学生随机排考

图4 同一个分配结果先写入排考名单,再用于生成全部座位图。

座位图不能再随机一次,否则图上的学生会与名单不一致。程序把考场、座号、排、列、学号、姓名、班级放在同一份结果中,名单和座位卡都从这里读取。

工作表 用途
学生名单 输入学号、姓名、班级,原表不随机排序
考场设置 输入考场、排数、列数、容量和地点
排考名单 保存本轮250名学生的考场和座位
座位图 考场01至考场05 实际表名为座位图-考场01等,显示每场50个座位

面对讲台,排从前到后、列从左到右编号。每排5座时,座号6就是第2排第1列。代码按以下换算生成位置,名单中的排、列与座位图使用同一规则。

排号 = Int((s – 1) / CLng(考场数据(k, 3))) + 1
列号 = (s – 1) Mod CLng(考场数据(k, 3)) + 1

写入前把学号列设为文本格式,防止01001变成1001。结果写成固定值,不会因普通重算而重新洗牌。再次运行会更新结果,正式使用前应另存需要保留的旧版排考方案。

查看完整座位分布图

用 WorkBuddy 和 VBAYYDS
完成学生随机排考

图5 同一考场的10排5列全部显示,讲台和座位卡来自实际生成结果。

每张卡显示座号、学号、姓名和班级,查看时能直接对应排考名单。5张图使用相同结构,程序设置了 A4 纵向和单页适配。正式打印前仍应在实际使用的电脑上逐场检查预览,确认缩放后的姓名、学号和边缘座位清楚可读。

用数据核对结果

这次独立核对读取了全部排考记录和座位卡,而不是只抽查首页。结果如下。

检查项目 本次结果
输出行数与唯一学号 250行,250个唯一学号,与源表集合一致
每个考场人数 5个考场各50人
名单和座位卡 全部250座的学号、姓名、班级与位置一致
原始数据 学生资料保持不变,考场容量公式保留
再次随机 仍为250行,本轮250人的座位指派与上一轮不同

还要测试错误输入,例如重复学号、末行漏填学号、排数为小数、单场容量不符和总座位不足。本例已对这些输入进行拦截测试。实际复用时,应先在测试副本中验证错误提示和旧结果是否保留,不要直接拿正式学生资料试错。

程序在写入前完成输入检查,但不等于具备任意运行故障下的自动回滚能力。中途异常后应核对结果是否完整,再决定重跑;真实学生信息也应按学校的数据管理要求使用。

可复用提示模板

请使用vba相关技能,帮我把当前表里的学生随机分到指定考场,不用窗体。请先读取学生名单和考场设置,告诉我人数、座位数是否匹配。不能重复或漏人,原始资料不要改。生成排考名单和每个考场的座位图。完成后运行,逐项核对人数、学号和座位,再告诉我还有哪些情况需要人工检查。

零基础用户可以先把人数、座位和输出要求说清楚,让 WorkBuddy 与 VBAYYDS语音编程完成代码和运行,再对照名单检查结果。复用到不同人数、不同教室或新的排考规则时,重新说明约束并测试,不能直接把这次250人的通过结果当成所有场景的保证。

用 WorkBuddy 和 VBAYYDS
完成学生随机排考插图6

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