Sub 各班个人各科进步幅度()
Dim dRank As Object
Set dRank = CreateObject("Scripting.Dictionary")
Dim dStd As Object
Set dStd = CreateObject("Scripting.Dictionary")
Dim dSbj As Object
Set dSbj = CreateObject("Scripting.Dictionary") em = Array("月考2", "期中考")
For n = LBound(em) To UBound(em) Step 1
Set sht = ThisWorkbook.Worksheets("成绩表_" & em(n))
With sht
EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
EndCol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column For i = 2 To EndRow
Key = CStr(.Cells(i, 1).Value)
dStd(Key) = Array(CStr(.Cells(i, 1).Value), CStr(.Cells(i, 2).Text), CStr(.Cells(i, 3).Text))
For J = 1 To EndCol
If .Cells(1, J).Text Like "*排" Then
dSbj(.Cells(1, J).Text) = ""
End If Key = CStr(.Cells(i, 1).Value) & ";" & em(n) & .Cells(1, J).Text
'Debug.Print Key
dRank(Key) = .Cells(i, J).Value Next J
Next i
End With
Next n For Each K In dSbj.Keys
Set sht = CreateSheet(ThisWorkbook, K & "_飞跃进步_我^_^了")
With sht
.Range("a1").Resize(1, 6).Value = Array("考号", "姓名", "班级", em(0), em(1), "进退")
EndCol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column i = 1
For Each std In dStd.Keys
i = i + 1
Ar = dStd(std)
.Cells(i, 1).Value = Ar(0)
.Cells(i, 2).Value = Ar(1)
.Cells(i, 3).Value = Ar(2) Key = CStr(Ar(0)) & ";" & .Cells(1, 4).Text & Split(.Name, "_")(0)
.Cells(i, 4).Value = dRank(Key)
Key = CStr(Ar(0)) & ";" & .Cells(1, 5).Text & Split(.Name, "_")(0)
.Cells(i, 5).Value = dRank(Key)
.Cells(i, 6) = Val(.Cells(i, 4).Value) - Val(.Cells(i, 5).Value) Next std Sort_Rank .UsedRange, True
.Columns.AutoFit
End With
Next K Set dSbj = Nothing
Set dStd = Nothing
Set dRank = Nothing End Sub
Public Sub Sort_ClassRank(ByVal Rng As Range, Optional WithHeader As Boolean = True)
With Rng
.Sort _
Key1:=Rng.Cells(1, 3), Order1:=xlAscending, _
Key2:=Rng.Cells(1, 6), Order2:=xlDescending, _
Header:=IIf(WithHeader, xlYes, xlNo), MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End With
End Sub
Public Sub Sort_Rank(ByVal Rng As Range, Optional WithHeader As Boolean = True)
With Rng
.Sort _
Key1:=Rng.Cells(1, 6), Order1:=xlDescending, _
Header:=IIf(WithHeader, xlYes, xlNo), MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End With
End Sub

  

20171104xlVBA各人各科进退的更多相关文章

  1. 20171104xlVBA进退比较

    Sub 比对两次成绩() CreateAdvance "进退比较", "月考2", "期中考", "月考2", &quo ...

  2. 第三十 访问财富进退自如 —Spring交易管理

    6月16日本,明确. "应该留给追穷寇勇,不可沽名学霸王.天若有情天亦老,人间正道是沧桑." 有始有终.有往有还.进退自如乃Spring事务管理之道,也是万物生生不息.和谐共处之道 ...

  3. 写sql语句统计各个学生各科成绩(case when用法)

    尊重原创:http://blog.csdn.net/love_java_cc/article/details/78268326 有如下一张表score: 建表语句: CREATE TABLE `sco ...

  4. mySQL--找出各科最高成绩

    //找出各科最高成绩create table gradeMax(id int primary key auto_increment,name varchar(20),subject varchar(2 ...

  5. 20171104xlVBA制作联合成绩条

    Dim dGoal As Object Dim dCls As Object Sub 制作联合成绩条() Dim sht As Worksheet Dim HeadRng As Range Dim H ...

  6. 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

    SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分 FROM SC L ,SC AS R WHERE L.C# = R.C# and L.score = ...

  7. sql语句查询成绩表各科前三名

    --语法形式: ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) --解释: 根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示 ...

  8. <老友记>学习笔记

    这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...

  9. SQL Server2016升级前几点自检

    SQL Server2016已经出来一段时间了,而且最新的SP1包也于2016年11月18日正式发布,各种新的特性推出让我们跃跃欲试.那么对于我们真实的业务环境,特别是生产环境要不要"跟风& ...

随机推荐

  1. Shell脚本,更改Info.plist中的日期等

    #!/bin/bashroot_src=$(dirname $(PWD)) bundle_name='RandomDebbot.bundle' target_path=$root_src/ecovac ...

  2. Oracle使用——Linux系统下使用命令实现oracle数据库数据导入

    背景 在工作当中,数据库的备份及数据导入是必不可少的操作,在完全无界面的Linux操作系统中,我们应该怎样实现oracle数据库的导入呢 前提 服务器已配置ftp 模拟环境 一台linux应用服务器上 ...

  3. HDU - 1875 畅通工程再续【最小生成树】

    Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖 ...

  4. Mybatis自增长id处理

    目录 1.使用useGenerateKey 2.使用select LAST_INSERT_ID() 3.使用select @@IDENTITY 4.在MySql中模拟Sequence 参考: 1.使用 ...

  5. 【做题】CF177G2. Fibonacci Strings——思维+数列

    题意:定义斐波那契字符串为: $f_1 = $ "a" \(f_2 =\) "b" \(f_n = f_{n-1} + f_{n-2}, \, n > 2 ...

  6. JUnit 4 Vs TestNG比较

    JUnit 4和TestNG都是Java中非常受欢迎的单元测试框架.两种框架在功能上看起来非常相似. 哪一个更好? 在Java项目中应该使用哪个单元测试框架? 下面表中概括了JUnit 4和TestN ...

  7. 【Java】【异常】

    java中2种方法处理异常:1.在发⽣异常的地方直接处理:2.将异常抛给调用者,让调⽤者处理.异常分类1.检查性异常: java.lang.Exception2.运⾏期异常: java.lang.Ru ...

  8. ECMAScript6语法重点(二)

    十一.Proxy和Reflect(Proxy保护对象不被外界访问:Object方法移植到Reflect) ①Proxy:原始对象(供应商)通过Proxy(代理商)生成新对象(映射原对象),用户访问的是 ...

  9. onpause 与 onresume

  10. async、await在ASP.NET[ MVC]中之线程死锁的故事

    场景重构 public ActionResult Index(string ucode) { string userInfo = GetUserInfo(ucode).Result; ViewData ...