ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: rorbin36

[求助] 如何在考场座位表里批量查找同班学生并自动填写每个学生的试室号?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-3 09:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub 复制试室号()
  2.   Dim d As New Dictionary
  3.   Dim r%, i%, c%, j%
  4.   Dim arr
  5.   With Worksheets("sheet2")
  6.     r = .Cells(.Rows.Count, 10).End(xlUp).Row
  7.     For k = 1 To r Step 25
  8.       arr = .Cells(k, 1).Resize(23, 11)
  9.       For i = 1 To UBound(arr) - 3 Step 3
  10.         For j = 1 To 10 Step 3
  11.           For x = 0 To 1
  12.             If Len(arr(i, j + x)) <> 0 Then
  13.               xm = arr(i + 1, j + x) & "+" & arr(i, j + x)
  14.               d(xm) = arr(23, 10) & 8 - (i + 2) / 3 & "-" & (j + 2) / 3
  15.             End If
  16.           Next x
  17.         Next
  18.       Next
  19.     Next
  20.   End With
  21.   
  22.   With Worksheets("sheet1")
  23.     r = Application.Max(.Cells(.Rows.Count, 1).End(xlUp).Row, .Cells(Rows.Count, 4).End(xlUp).Row)
  24.     arr = .Range("a2:f" & r)
  25.     For j = 1 To 4 Step 3
  26.       For i = 1 To UBound(arr)
  27.         If Len(arr(i, j)) <> 0 Then
  28.           xm = arr(i, j) & "+" & arr(i, j + 1)
  29.           If d.Exists(xm) Then
  30.             arr(i, j + 2) = d(xm)
  31.           End If
  32.         End If
  33.       Next
  34.     Next
  35.     .Range("c1,f1") = "试室号"
  36.     .Range("a2").Resize(UBound(arr), UBound(arr, 2)) = arr
  37.   End With
  38. End Sub

复制代码

TA的精华主题

TA的得分主题

发表于 2014-11-3 09:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
七八年级座位安排代码,用法跟九年级的一样。

七八年级考试座位表.rar

19.04 KB, 下载次数: 142

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-3 22:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
chxw68 发表于 2014-11-3 09:31
七八年级座位安排代码,用法跟九年级的一样。

太好了,就是这样了,我今天弄好了三个年级的考试座位表了,谢谢您!

TA的精华主题

TA的得分主题

发表于 2014-11-4 09:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
chxw68 发表于 2014-11-3 09:31
七八年级座位安排代码,用法跟九年级的一样。

chxw68老师:我有二个问题不知道能否解决,1、增加一个打印功能(分别按年级按班级打印出来給班主任在班上公布)。2、增加一列试室人数设定(任意设定座位编排的行、列数),然后按人数去排试室。请指教,多谢。

TA的精华主题

TA的得分主题

发表于 2014-11-4 10:02 | 显示全部楼层
本帖最后由 chxw68 于 2014-11-4 10:04 编辑
dyzx 发表于 2014-11-4 09:43
chxw68老师:我有二个问题不知道能否解决,1、增加一个打印功能(分别按年级按班级打印出来給班主任在班上 ...


两个功能都能实现,我也在思考,由于每个教室的布局可能都不一样,如果能将教室布局进行量化,然后根据量化后的数据准确生成试室号,这样就会减少后期调整的工作量。如果简单的设定每个教室的行数和列数,虽然比原来笼络设定每个教室座位数前进了一步,但还没有达到准确量化的目标。我想能不能这样设置一张参数表,该表总共有两列,第1列为试室号,第2列为座位号,座位号表述形式跟工作表一样,如:A1,A2,A3...B1,B2,B3...等等,第一个字母表示列,第2个数字表示行,两个合起来表示相应的座位,这样虽然前期麻烦一些,但到后面会一劳永逸。这是我的想法,不知道你们当老师的有没有更好的设想。

TA的精华主题

TA的得分主题

发表于 2014-11-5 14:33 | 显示全部楼层
chxw68 发表于 2014-11-4 10:02
两个功能都能实现,我也在思考,由于每个教室的布局可能都不一样,如果能将教室布局进行量化,然后根据 ...

这个也可以,我有一点建议:1、同一级同一班学生尽量不要相邻,应隔开一点。2、座位表打印时最好设置成一张A4纸打印一个试室,多谢。

TA的精华主题

TA的得分主题

发表于 2014-11-5 14:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
chxw68 发表于 2014-11-4 10:02
两个功能都能实现,我也在思考,由于每个教室的布局可能都不一样,如果能将教室布局进行量化,然后根据 ...

这个也可以,我有一点建议:1、同一级同一班学生尽量不要相邻,应隔开一点。2、座位表打印时最好设置成一张A4纸打印一个试室,多谢。

TA的精华主题

TA的得分主题

发表于 2014-11-6 09:17 | 显示全部楼层
chxw68老师:我所提的问题不知道能否实现,请指教,多谢。

点评

可以实现,不过就是有点麻烦。  发表于 2014-11-6 09:41

TA的精华主题

TA的得分主题

发表于 2018-9-9 09:20 | 显示全部楼层
研究研究。感谢分享的老师们。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-28 05:16 , Processed in 0.024489 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表