ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 较难的成绩统计代码求助

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-10 20:55 | 显示全部楼层
本帖最后由 沉潜 于 2013-3-10 21:23 编辑
mjzxlmg 发表于 2013-3-10 14:28

您太有才了,把我设想的东西一全都给解决了(要是俺去弄,读懂就要几天,然后还要不知多少天的熬夜还不一定能解决呢),不胜感激ing……,而且运行的速度更快一般只要0.06秒,原来可要0.20左右。对于三残儿童免计,我想,在设置里先添加好三残儿童信息,然后查找学生成绩库,将对应三残儿童的成绩清空,这样就能达到三残免计的功能了,您看这样行不?
另,我根据工作需要做了个名册批打(报名册和成绩册),打算添加个分栏功能(如某些年级考试科目少就分栏,节约纸张),网上找了下,看得云里雾里,还望得到您的指点!你看我那些代码那些该优化下,哪些该改的改下。 名册打印.rar (217.45 KB, 下载次数: 39)

TA的精华主题

TA的得分主题

发表于 2013-3-10 23:38 | 显示全部楼层
三残儿童可以这样,把这些人的信息入在工作表中,然后用用一个字典装入,在计算总分、排名时,如果源成绩中存在这个人,就把这个人成绩置为-1分,不统计成绩即可。
下面附件完善了一下代码,修改两处小错误(没有DIM,可能出现错误),增加了一个个人成绩查询窗体,有科目分数,级排名、校排名、班排名四栏。你试一下看看。
业绩统计.rar (170.96 KB, 下载次数: 105)

TA的精华主题

TA的得分主题

发表于 2013-3-10 23:59 | 显示全部楼层
本帖最后由 mjzxlmg 于 2013-3-11 00:01 编辑
沉潜 发表于 2013-3-10 20:55
您太有才了,把我设想的东西一全都给解决了(要是俺去弄,读懂就要几天,然后还要不知多少天的熬夜还不一 ...

不错用上字典数组了。
你的源数据只有一个区域,装入数组,然后在一次循环中把需要的都装入字典。因为数据有几千行,多次循环要耗时很多。
如三联动COMBOBOX可用字典套字典,可参考下上面的附件。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-16 10:56 | 显示全部楼层
本帖最后由 沉潜 于 2013-3-16 11:09 编辑
mjzxlmg 发表于 2013-3-10 23:38
三残儿童可以这样,把这些人的信息入在工作表中,然后用用一个字典装入,在计算总分、排名时,如果源成绩中 ...

老师你好,在做三残免计中,汇总表的分班三残人数怎么也统计不出来,还望您的指点。
我是这样整的
在【Setup】模块中添加了
Nocount_arr = .[a31].CurrentRegion.Value      '免计
For i = 3 To UBound(Nocount_arr)              '免计
    Nocount_dic(CStr(Nocount_arr(i, 2)) &CStr(Nocount_arr(i, 3)) & CStr(Nocount_arr(i, 5)) & CStr(Nocount_arr(i, 6))) = ""     '学校  年级 学号 姓名
Next
【Rankings】模块
If Nocount_dic.Exists(CStr(Arr_in(rowi, 1)) &CStr(Arr_in(rowi, 2)) & CStr(Arr_in(rowi, 5)) & CStr(Arr_in(rowi, 6))) Then     '免计
    Rank_out(rowi, columni) = -1
End If
前面这个能正确统计

【学科成绩分析】模块
result(s, 9) =  即为各班残病免计人数值
If Nocount_dic.Exists(CStr(Arr_in(i, 1)) & CStr(Arr_in(i, 2)) & CStr(Arr_in(i, 5)) & CStr(Arr_in(i, 6))) Then
   result(s, 9) = result(s, 9) + 1           '免计人数
End If
但这里的 result(s, 9) 值始终为空,百思不得其解 统计.rar (267.17 KB, 下载次数: 26) ,还有就是,按科导出每科只要一个表头不知怎么修改。

TA的精华主题

TA的得分主题

发表于 2013-3-16 23:04 | 显示全部楼层
沉潜 发表于 2013-3-16 10:56
老师你好,在做三残免计中,汇总表的分班三残人数怎么也统计不出来,还望您的指点。
我是这样整的
在【 ...

业绩统计.rar (276.38 KB, 下载次数: 107)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-4-16 15:18 | 显示全部楼层
mjzxlmg 发表于 2013-2-25 18:11

高手,现在使用的时候,出现这样一个情况,就是程序执行完后,要保存文档,EXCEL提示“文档未保存”。一直出错,不知道怎么解决,试着在网上找了一个恢复保存的代码,可是又提示“加载DLL出错“。没办法了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-6-21 19:28 | 显示全部楼层
本帖最后由 沉潜 于 2013-6-21 19:36 编辑
mjzxlmg 发表于 2013-3-16 23:04

老师,有段时间没摸索vba了,今日试着添加个按科导出(据原来按级导出),始终没成功,还得烦请老师帮忙为谢。 业绩统计.rar (335.27 KB, 下载次数: 59)

TA的精华主题

TA的得分主题

发表于 2013-7-8 10:40 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-15 16:22 | 显示全部楼层
沉潜 发表于 2013-6-21 19:28
老师,有段时间没摸索vba了,今日试着添加个按科导出(据原来按级导出),始终没成功,还得烦请老师帮忙为 ...

自己解决了

TA的精华主题

TA的得分主题

发表于 2014-7-11 17:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
沉潜 发表于 2013-7-15 16:22
自己解决了

能否共享?谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 22:33 , Processed in 0.042708 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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