Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1349|回复: 2

[VBA] VBA把成绩表 按班级对成绩进行分类

[复制链接]
发表于 2016-11-18 08:38 | 显示全部楼层 |阅读模式
本帖最后由 laoau138 于 2016-11-18 12:26 编辑


VBA把成绩表  按班级对成绩进行分类

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-11-26 15:38 | 显示全部楼层
  1. Sub Macro1()
  2. On Error Resume Next
  3. Dim arr, d, sht As Worksheet
  4. Set d = CreateObject("scripting.dictionary")
  5. Set sht = Sheets("成绩表")
  6. arr = sht.Range("a1").CurrentRegion
  7. Application.ScreenUpdating = False
  8. Application.DisplayAlerts = False
  9. For Each sh In Sheets
  10.     If sh.Name <> sht.Name Then sh.Delete
  11. Next
  12. For i = 2 To UBound(arr)
  13.     d(arr(i, 3)) = ""
  14. Next
  15. For Each a In d.keys
  16.     sht.[c3].AutoFilter Field:=3, Criteria1:=a
  17.     With Sheets.Add(after:=Sheets(Sheets.Count))
  18.         sht.[a:g].Copy .[a1]
  19.         .Name = a
  20.     End With
  21. Next
  22. sht.Activate
  23. sht.ShowAllData
  24. Application.DisplayAlerts = True
  25. Application.ScreenUpdating = True
  26. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-11-26 15:40 | 显示全部楼层

还可以这样吧



Sub 按班整理成绩() '字典法
Dim i&, m&, arr
Dim d, k
Set d = CreateObject("Scripting.Dictionary")
m = [b65536].End(3).Row
arr = Range("A2:g" & m)
For i = 1 To UBound(arr)
    d(arr(i, 3)) = ""
Next
k = d.keys
ReDim brr(1 To UBound(arr), 1 To 7)
For i = 0 To d.Count - 1
    x = 0
    For j = 1 To UBound(arr)
        If arr(j, 3) = k(i) Then
           x = x + 1: brr(x, 1) = x
           For l = 2 To 7
               brr(x, l) = arr(j, l)
           Next
        End If
    Next
   Sheets(k(i)).Range("a2:g65536").ClearContents
   Sheets(k(i)).[a2].Resize(x, 7) = brr
Next
Set d = Nothing
End Sub


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 14:58 , Processed in 0.224419 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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