hatelife0806
Thành viên mới

- Tham gia
- 26/12/08
- Bài viết
- 17
- Được thích
- 1
Mình dùng phương thức AdvancedFilter Sau đó lập bảng thời gian vô ra của từng ấy người cho 1 ngày mất khoảng 14 giây!
Nếu làm cho 31 ngày sẽ khoảng 30*15 gy => 7 phút 30'';
Sau đó còn chép sang Data1 nữa không ít hơn chừng ấy thòi gian nữa, kể ra mệt thật đó!
Nhưng biết đâu, vì lý do gì đó tác giả không xài thì . . . .
Đành chờ í tác giả có quyết tâm theo đuổi không cái đã!
Đây là macro kê bảng dữ liệu 1 ngày:
PHP:Sub TrichLoc() Dim Clls As Range, Cll As Range Dim eRw As Long, eR As Long: Dim Timer_ As Double Application.ScreenUpdating = False: Timer_ = Timer Sheets("Data").Select: eRw = [A65500].End(xlUp).Row For Each Clls In [Z2] ' Range([z2], [z2].End(xlDown))' [e2].Value = Clls.Value Range("A1:C" & eRw).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[E1].Resize(2), _ CopyToRange:=[E4].Resize(, 3), Unique:=False eR = [e65500].End(xlUp).Row: [I2].Resize(eR, 4).ClearContents Range("E4:G" & eR).Sort Key1:=Range("E5"), Order1:=1, Key2:=Range("G5") _ , Order2:=1, Header:=xlGuess, OrderCustom:=1, MatchCase:=False For Each Cll In Range("E5:E" & eR) With Cll If (.Offset(1).Value <> .Value And .Value <> .Offset(-1).Value) Or _ (.Offset(1).Value = .Value And .Value <> .Offset(-1).Value) Then [i65500].End(xlUp).Offset(1).Resize(, 3) = .Resize(, 3).Value ElseIf .Offset(1).Value <> .Value And .Value = .Offset(-1).Value Then [i65500].End(xlUp).Offset(, 3).Value = .Offset(, 2).Value .Interior.ColorIndex = 38 Else End If End With Next Cll Next Clls [g1].Value = Timer - Timer_ End Sub
Nhờ các bạn giỏi Excel làm giùm mình cái này (Khó hơn yêu cầu trước

http://www.mediafire.com/?yyhazoezgaw