|
用时0.14s- Sub Macro2()
- Dim rng As Range, arr, brr(1 To 20000, 1 To 11), i&, n&, s%
- t = Timer
- Application.ScreenUpdating = False
- Sheets("明细").Activate
- Set rng = [a1:o615]
- arr = rng
- w = Array("3A", "3B", "3C", "2G", "2H", "2J", "A1", "A2", "B1")
- Sheets("明细").FilterMode = False
- rng.Sort Key1:=Range("j2"), Order1:=xlDescending, Header:=xlGuess
- For i = 0 To UBound(w)
- Range("a1").AutoFilter Field:=2, Criteria1:=w(i)
- [l1].AutoFilter Field:=12, Criteria1:=">=" & 8
- GoSub 100
- Next
- ActiveSheet.ShowAllData
- Sheet1.Range("a2").Resize(n, UBound(brr, 2)) = brr
- Erase brr
- n = 0
- rng.Sort Key1:=Range("J2"), Order1:=xlAscending, Header:=xlGuess
- For i = 0 To UBound(w)
- Range("a1").AutoFilter Field:=2, Criteria1:=w(i)
- [l1].AutoFilter Field:=12, Criteria1:=">=" & 8
- GoSub 100
- Next
- ActiveSheet.ShowAllData
- [a1].AutoFilter
- Sheet4.Range("a2").Resize(n, UBound(brr, 2)) = brr
- rng = arr
- MsgBox Timer - t
- GoTo line1
- 100:
- s = 0
- For Each m In [b2:b615].SpecialCells(xlCellTypeVisible)
- s = s + 1
- If s < 11 Then
- h = m.Row
- n = n + 1
- brr(n, 1) = Cells(h, 2)
- brr(n, 2) = Cells(h, 4)
- brr(n, 3) = Cells(h, 5)
- brr(n, 4) = Cells(h, "h")
- brr(n, 5) = Cells(h, "i")
- brr(n, 9) = Cells(h, "j")
- brr(n, 10) = Cells(h, "l")
- brr(n, 11) = Cells(h, "m")
- If s = 10 Then n = n + 1: brr(n, 1) = w(i) & " 10人 "
- End If
- Next
- Return
- line1:
- Application.ScreenUpdating = True
- End Sub
复制代码 |
评分
-
查看全部评分
|