ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 超级强大1:七年级新生分班,解决了重名与择班问题

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-28 15:09 | 显示全部楼层
本帖已被收录到知识树中,索引项:模板和开源系统
  休息了下,发现了一个问题:
  第一次点击“调整择班,修改报表”时,如果确实有需要调整的择班学生,则照既定程序处理;
  第二次点击“调整择班,修改报表”时,虽然没有需要调整的择班学生,但程序依然照既定程序处理,浪费资源,当然,第一次点击在没有需要调整的择班学生时也一样。
  因此,修改择班模块中的一句代码为:
  原代码:
  
  1. MsgBox xiaox, , "需调整的择班学生:" '(二)查找、存储择班与分班不一致的学生,并简要报告
复制代码
  新代码:
  1. If m = 0 Then MsgBox "没有需要调整的择班学生或已调整完毕!", , "友情提示:": Exit Sub Else MsgBox xiaox, , "需调整的择班学生:" '(二)查找、存储择班与分班不一致的学生,并简要报告
复制代码
  这样可以规避上述问题,反复点击“调整择班,修改报表”时不再产生重算。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-28 15:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  补充说明:
  本附件应当进行“保护性设计”,但是当您有良好的操作习惯时,可以不用这样做。
  以下的操作行为,可能会导致程序出错:
  1.随意增删工作表(所以应当禁止这些操作,当代码运行时自动解密,运行后自动加密,主要是由工作簿保护中的窗口或其他来实现的,记得不太准可能);
  2.删除原始数据表“报名信息表”中的表头、标题行,也即第1行与第2行;
  3.原始数据源不是连续行或连续列时;
  4.部分字段如“择班”、“序号”、“姓名”、“性别”、“身份证件号”、“联系电话”、“总分”、“名次”、“班级”、“语文”……等更名或意外输入空格时,导致程序无法找到相应字段时;
  5.其他未知事项,有待检验的。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-28 15:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  以下粗心的操作可能导致结果不正确:
  在点击“开始分班”前未对原始数据表进行相应基础操作的。
  该基础操作的内容见附件中的提示,为十分重要的。摘录如下:
  “开始分班前请先把原始数据表按总分降序排序,序列填充名次;然后再按照性别升序+总分降序方式联合排序。” 

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-28 15:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 aoe1981 于 2014-7-28 15:32 编辑

  善用排序按钮,会使工作顺利并带来方便:
     排序按钮.jpg
  “恢复序号升序”按钮中恢复的意思是:假定学生报名信息表依据学生的序号(该序号的产生规则不太清楚,有可能是依据报到的先后顺序,也有可能是来自于学生小学毕业考试时的学号,且不论)进行升序排列,这是报名信息表的天然顺序。
  “姓名升序”的存在主要是为了配合“检测、定位重名”,如果您在检测、定位重名之前先将原始数据表按姓名做升序排序,您会发现,定位后重名都挨在了一起,这大大增强了直观性和可操作性。当然,这也会为接下来的疏忽埋下伏笔:比如再次点击“开始分班”按钮之前没有把顺序排到分班需要的“性别升序+总分降序”上,从而导致分班结果偏差很大,很不均衡。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-28 15:38 | 显示全部楼层
  透露一点谨慎的使用方法:
  因为初次使用时,这么大量的工作一下下由代码“神不知,鬼不觉”的完成,许多人第一反应应当是:“到底对不对?”
  怀疑,此时是对工作的负责!
  如何检验?
  1.手动记录msgbox消息框中的信息,一一对照;
  2.在点击完一个按钮后,不要急于点击下一步的按钮,比如:当点击完“开始分班”后,先查看、记录下工作表发生的变化,主要是有择班信息的学生都被自动分配到了哪些班……做完这些后,可以再行点击下一步按钮。排序按钮也是一样,点击完成后,可以检查一下排序效果……
  学贵有疑,使用时也要谨慎,不要轻易相信陌生的东西!

TA的精华主题

TA的得分主题

发表于 2014-7-28 18:13 | 显示全部楼层
aoe1981 发表于 2014-7-28 15:38
  透露一点谨慎的使用方法:
  因为初次使用时,这么大量的工作一下下由代码“神不知,鬼不觉”的完成 ...

还麻烦你一下,现在根据你需要,请将我下面附件的报名信息表在1-2行表头之间插入一行(形成3行表头),生成的各班分表也在1-2行表头之间插入一行(形成3行表头),当然分班统计表和分班按钮的宏语句也要相应改变一下了(不然就出错了),谢谢!

7、▲▲▲ 七年级分班( 香川群子 班在后,3行表头)vv.rar

73.46 KB, 下载次数: 42

TA的精华主题

TA的得分主题

发表于 2014-7-28 18:33 | 显示全部楼层
择班是同总分人员对调的吗,还是直接调过去的?不清楚。最好将初始分班的班号记录到“学生报名信息”的S列中。便于查看调整前后的去向。谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-28 18:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
达州张先生 发表于 2014-7-28 18:33
择班是同总分人员对调的吗,还是直接调过去的?不清楚。最好将初始分班的班号记录到“学生报名信息”的S列中 ...

这个在分班表中有记录的……名次接近,也就是总分接近……

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-7-28 18:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
aoe1981 发表于 2014-7-28 15:38
  透露一点谨慎的使用方法:
  因为初次使用时,这么大量的工作一下下由代码“神不知,鬼不觉”的完成 ...

对象不支持该属性和方法。

分班.rar

39.87 KB, 下载次数: 31

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-28 18:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
张雄友 发表于 2014-7-28 18:37
对象不支持该属性和方法。

你是点击其中一个“排序”按钮出错的吗?我是用2010录制的排序的宏代码,我在2010中又运行了,是正常的,所以做这样的猜测,你可能是用2003的吧?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 18:42 , Processed in 0.035270 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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