thivantan
Thành viên thường trực




- Tham gia
- 16/11/07
- Bài viết
- 212
- Được thích
- 431
- Nghề nghiệp
- Thong ke ke toan
Cảm ơn bạn. Theo tôi hiểu nếu dùng Advanced filter thì chỉ lấy được các tên giáo viên dự giờ ở một tháng, nhưng tôi muốn lấy được danh sách giáo viên duy nhất dự giờ ở tháng 1, tháng 2 hoặc cả tháng thứ n nữa( Tên giáo viên dự giờ ở tháng 1 có thể không trùng với tháng 2) sau đó mới tổng hợp. Có thể làm thủ công thì cũng được, nhưng nếu có nhiều giáo viên và nhiều tháng thì vất vả quá, tôi nghĩ dùng VBA thì có lẽ hay hơn. Nhờ các bạn giúp đỡ. ThânCái này bạn dùng Advanced filter lọc là được mà sau đó dùng ghi lại macro là ra được
Option Explicit
Sub ThongKeDuGio()
Dim Rng As Range, sRng As Range
Dim bTh As Byte, bDS As Byte
Dim eRw As Long
Sheets("Sheet1").Select: Set Rng = Range("B3:B15")
Rng.Copy: [B17].Select
ActiveSheet.Paste: Application.CutCopyMode = False
eRw = [b65500].End(xlUp).Row
Range("B16:B" & eRw).Select
Selection.Sort Key1:=Range("B17"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1
For bTh = 1 To 12
With Cells(3, 1 + bTh)
Set Rng = Range(.Offset(), .End(xlDown))
End With
For bDS = 17 To eRw
Set sRng = Rng.Find(Cells(bDS, "B").Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
Cells(bDS, 2 + bTh).Value = sRng.Offset(, -bTh).Value
End If
Next bDS
Next bTh
End Sub