|
- Sub 排序()
- Dim sh As Worksheet, SortRng As Range
- Sheets("学校排名").Range("a4:aj100").Sort key1:=Sheets("学校排名").[aj4]
- For Each sh In Worksheets
- If sh.Name Like "*汇总" Then '年级汇总,按M列排序
- sh.Range("a3:m" & sh.[a65536].End(3).Row).Sort key1:=sh.[m3]
- ElseIf sh.Name Like "年级*" Then '年级单科,按“名次”所在列排序,分班排
- c = sh.Rows(2).Find("名次").Column
- arr = sh.Range("a1:b" & sh.[a65536].End(3).Row)
- For i = 1 To UBound(arr)
- If arr(i, 1) = "序号" Then
- r = sh.Cells(i, 1).End(xlDown).Row
- Set SortRng = sh.Range(sh.Cells(i + 1, 1), sh.Cells(r, c + 1))
- SortRng.Sort key1:=sh.Cells(i + 1, c)
- i = r
- End If
- Next
- ElseIf sh.Name Like "*率" Then '及格率、优秀率,以两列为一组排序,倒序
- r = sh.[a65536].End(3).Row
- For j = 2 To 10 Step 2
- sh.Range(sh.Cells(3, j - 1), sh.Cells(r, j)).Sort key1:=sh.Cells(3, j), order1:=xlDescending
- Next
- End If
- Next
- End Sub
复制代码 |
|