- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,969
Chạy đua tốc độ đây:
Tôi nghĩ code này sẽ rất nhanh! Dử liệu 10.000 dòng, lọc trong nháy mắt
PHP:
Option Explicit
Sub Loc()
Dim DS As Range, Ma As Range, LocMa As Range
Dim Temp As Range, Clls As Range
Dim iR As Integer
Application.ScreenUpdating = False
Set DS = [A1].CurrentRegion
DS.Sort Key1:=[A2], Order1:=1, Key2:=[B2], Order2:=2, Header:=1
Set Ma = DS.Resize(DS.Rows.Count, 1)
Range("F5:G1000").ClearContents
Ma.AdvancedFilter Action:=2, CopyToRange:=[F4], Unique:=True
Set Temp = [F4].CurrentRegion
Set LocMa = Temp.Offset(1, 0).Resize(Temp.Rows.Count - 1, 1)
LocMa.Sort Key1:=[F5], Order1:=1, Header:=0
For Each Clls In LocMa
iR = Application.WorksheetFunction.Match(Clls, Ma, 0)
Clls.Offset(, 1) = [A1].Offset(iR - 1, 1)
Next Clls
Application.ScreenUpdating = True
End Sub