以下这段代码是本人在工作中用到的一段VBA代码,借此地保留下来参考,不喜欢的朋友可以快速划走。
'本程序用于模拟若干个学生中考报名学校志愿填写情况
'本程序保证随机且不重复报名志愿
'本程序参考今日头条[千万别学Excel]UP主的一段代码,特此致谢!

Sub 模拟报名志愿()
'本程序用于模拟若干个学生中考报名学校志愿填写情况
'保证随机且不重复报名志愿
'程序参考今日头条[千万别学Excel]UP主的一段代码,特此致谢!
On Error Resume Next
Dim 报名数 As Integer, 志愿数 As Integer
Dim 志愿表() As Variant
Dim 填报学校 As String
'初始化报名区域、
Range("c2:h20") = ""
For r = 1 To 19 '从第一位学生循环
志愿表 = Range("A1:A6").Value '获取志愿学校
志愿数 = UBound(志愿表)
'随机生成报考学校志愿顺序列表
For c = 3 To 8
报名数 = Int(志愿数 * Rnd + 1) '取随机数
填报学校 = 志愿表(报名数, 1)
'输出中奖者的姓名
Cells(r, c) = 填报学校
For i = 报名数 To 志愿数 - 1
志愿表(i, 1) = 志愿表(i + 1, 1)
Next i
志愿数 = 志愿数 - 1
Next c
Next r
End Sub