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-2-19 09:42 | 显示全部楼层
mjzxlmg 发表于 2013-2-19 09:36
试试:

你好,分析统计的科目数量有没有限制,谢谢

TA的精华主题

TA的得分主题

发表于 2013-2-19 21:10 | 显示全部楼层
mjzxlmg 发表于 2013-2-19 09:36
试试:

呵呵,巴适了!

TA的精华主题

TA的得分主题

发表于 2013-2-24 18:23 | 显示全部楼层
本帖最后由 hedgehog93 于 2013-2-24 18:24 编辑
mjzxlmg 发表于 2013-2-19 09:36
试试:

大哥,发现好像是总分为0时这名学生不得参与各科里考核人数或后10%人数的计算,但是如果某科为0分的时候,他还是要参与该科里考核人数或后10%人数的计算。

TA的精华主题

TA的得分主题

发表于 2013-2-24 20:13 | 显示全部楼层
hedgehog93 发表于 2013-2-24 18:23
大哥,发现好像是总分为0时这名学生不得参与各科里考核人数或后10%人数的计算,但是如果某科为0分的时候, ...

得在取参考人数时把0分的去掉

TA的精华主题

TA的得分主题

发表于 2013-2-25 12:11 | 显示全部楼层
mjzxlmg 发表于 2013-2-24 20:13
得在取参考人数时把0分的去掉

所以我就在想,能不能在执行程序前(加载窗口时或者点生成按钮时),程序自动把0分替换成空成绩?如果所有科目都是0分(即总分也为0)可以考虑删除这个学生。

TA的精华主题

TA的得分主题

发表于 2013-2-25 18:11 | 显示全部楼层
hedgehog93 发表于 2013-2-25 12:11
所以我就在想,能不能在执行程序前(加载窗口时或者点生成按钮时),程序自动把0分替换成空成绩?如果所有 ...

常用工具.rar (131.63 KB, 下载次数: 82)

TA的精华主题

TA的得分主题

发表于 2013-2-26 08:44 | 显示全部楼层
mjzxlmg 发表于 2013-2-25 18:11

统计分析科目增加到14个就错误提示:请指教

成绩源中的科目情况:
2.jpg

设置表情况:
3.jpg

提示错误的语句:

1.jpg

TA的精华主题

TA的得分主题

发表于 2013-2-26 09:32 | 显示全部楼层
zyg365 发表于 2013-2-26 08:44
统计分析科目增加到14个就错误提示:请指教

成绩源中的科目情况:

加红色内容

Sub 后百分之十名册()
    Dim i&, j&, m&, s&, s1&, n&, k&, Result1(), Result(), dic As Object, Class_dic As Object, Result_dic As Object, Class, last_row&, count&, temp(), Title(), Maxrow&, total_row&
    Set dic = CreateObject("Scripting.Dictionary")
    Set Class_dic = CreateObject("Scripting.Dictionary")
    Set Result_dic = CreateObject("Scripting.Dictionary")
    ReDim Result1(1 To last_rows * Subject_number_dic.count, 1 To 4)
    For j = 4 To Rank_columns Step 3
        For i = 2 To last_rows
            If Len(Arr_out(i, j)) And Arr_out(i, j + 2) > Application.Round(Class_Subject_number_dic(Arr_out(i, 1) & Arr_out(1, j)) * 0.9, 0) Then
                Class_dic(Arr_out(i, 1)) = Empty
                m = m + 1
                Result1(m, 1) = Arr_out(i, 1)
                Result1(m, 2) = Arr_out(i, 3)
                Result1(m, 3) = Arr_out(1, j)
                Result1(m, 4) = Arr_out(i, j)
            End If
        Next
    Next

TA的精华主题

TA的得分主题

发表于 2013-2-26 09:35 | 显示全部楼层
造成错误的原因是考虑不周全,设定输出结果的数组行数不够,为了保险设定为大一点,即原数据的行数*科目数,这样就可以任意设定科目数。

TA的精华主题

TA的得分主题

发表于 2013-2-27 08:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
mjzxlmg 发表于 2013-2-26 09:35
造成错误的原因是考虑不周全,设定输出结果的数组行数不够,为了保险设定为大一点,即原数据的行数*科目数, ...

谢谢,您的帮助
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 20:01 , Processed in 0.034285 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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