ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何依班级、考场可容人数及考场个数自动生成考生准考证号?

如何依班级、考场可容人数及考场个数自动生成考生准考证号?

作者:绿色风 分类: 时间:2022-08-17 浏览:68
楼主
liuguansky
Q:如何依班级、考场可容人数及考场个数自动生成考生准考证号?[准考证号为班级+考场号+座位号]
  现在已知考场个数,每个考场可容纳的人数,考生清单,因为考场个数在变化,考生人数也在变,如何自己生成准考证号用于考试座位安排?
A;用如下代码可以实现:

  1. Sub justtest()
  2.   Dim arr1, arr2, i&, k&, arrt(), arrr() '定义变量
  3.   arr = Cells(2, 1).Resize(Cells(1, 1).End(4).Row - 1, 2).Value '获取编号班级信息,赋值给数组
  4.   arr2 = Cells(6, "f").Resize(Cells(6, "f").End(4).Row - 5, 2).Value '获取考场信息,赋值组数组
  5.   ReDim arrt(1 To UBound(arr, 1), 1 To 2) '重定义数组,用于储存目标返回记录
  6.   ReDim arrr(1 To UBound(arr2, 1)) '重定义数组,用于储存考场累计人数
  7.   ReDim arrs(1 To UBound(arr2, 1)) '重定义数组,用于储存考场累计个数
  8.   arrr(1) = arr2(1, 1) * arr2(1, 2): arrs(1) = arr2(1, 1) '初始化数组第一个值。
  9.   For i = 2 To UBound(arr2, 1) '在考场安排中循环,累加考场个数与已安排人数
  10.     arrr(i) = arr2(i, 1) * arr2(i, 2) + arrr(i - 1) '累加人数
  11.     arrs(i) = arr2(i, 1) + arrs(i - 1) '累加考场数
  12.   Next i
  13.   k = 1
  14.   For i = 1 To UBound(arr, 1) '在班级信息中循环
  15.     If i > arrr(k) Then k = k + 1 '如果超过考场累加人数,则加考场计数加1
  16.     If k = 1 Then m = i: n = 0 Else: m = i - arrr(k - 1): n = arrs(k - 1) '第一个考场不减之前累计人数,考场数为0;后面考场的人数要进行扣减之前人数。
  17.     arrt(i, 1) = "'" & Format(((m - 1) \ arr2(k, 2)) + 1 + n, "00") '生成考场号,前面加"'",强制转换为文本。
  18.     arrt(i, 2) = arr(i, 2) + 1000 & Space(1) & Mid(arrt(i, 1), 2) & Space(1) & Format(((m - 1) Mod arr2(k, 2)) + 1, "00") '生成准考证号
  19.   Next i
  20.   Range("c2:d" & Rows.Count).ClearContents '清空区域,方便返回赋值。
  21.   Cells(2, 3).Resize(UBound(arrt, 1), 2) = arrt '赋值目标记录值。
  22. End Sub
2楼
cicq
这个程序不对吧
有很多考室只有32人,有的48人,有一个考室是9人, 这个人数是怎么定的。是什么规则
现实中不可能这样排的。
3楼
纵鹤擒龙水中月
学习****!                 
学习****!                 

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap