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




- Tham gia
- 22/4/11
- Bài viết
- 279
- Được thích
- 80
- Nghề nghiệp
- Dạy học
Sub Loc()
[A6:AT65536].ClearContents
Sheets("Data").[A5:AT10000].AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("H1:H2"), CopyToRange:=Range("A5:AT5")
End Sub
Bạn kiểm tra giúp xem khi chạy Code thì dữ lieuj loạn hết luônHên xui nhé.
Mã:Public Sub GPE() Dim Arr, dArr, I As Long, K As Long, J As Long, Dk As String With Sheet1 Arr = .Range("B6", .Range("B65000").End(3)).Resize(, 45).Value End With ReDim dArr(1 To UBound(Arr), 1 To 48) Dk = Range("H2").Value For I = 1 To UBound(Arr) If Arr(I, 16) Like Dk Or Arr(I, 19) Like Dk Or Arr(I, 22) Like Dk Or _ Arr(I, 25) Like Dk Or Arr(I, 28) Like Dk Or Arr(I, 31) Like Dk Then K = K + 1 dArr(K, 1) = K For J = 1 To 45 dArr(K, J + 1) = Arr(I, J) Next J If Len(Arr(I, 3)) <= 3 Then dArr(K, 47) = Val(Left(Arr(I, 3), Len(Arr(I, 3)) - 1)) dArr(K, 48) = Right(Arr(I, 3), 1) Else dArr(K, 47) = Arr(I, 3) End If End If Next I If K Then Range("A6").Resize(K, 48).Value = dArr Range("B6").Resize(K, 47).Sort Range("AU6"), xlAscending, Range("AV6"), , xlAscending Range("AU6").Resize(K, 2).ClearContents End If End Sub
Bạn chỉnh giúp mình. phần lọc đã được song khi lọc được dữ liệu thì tên lớp học của những HS đã qua một số năm đều đổi thành lớp giống nhau hết. VD những HS sinh năm 2005 đều học lớp 1 qua các năm chứ không phải là lớp 1 > lớp 2 > lớp 3 > lớp 4 > lớp 5 và năm học 2016-2017 chưa có lớp (sau này sẽ là HTCTTHNếu vậy thì Advance cũng sửa 1 chút thôi.
Bạn có để ý tôi đã sửa tiêu đề 1 chút: của bạn là năm thì thành năm 1, năm 2, năm 3...Bạn chỉnh giúp mình. phần lọc đã được song khi lọc được dữ liệu thì tên lớp học của những HS đã qua một số năm đều đổi thành lớp giống nhau hết. VD những HS sinh năm 2005 đều học lớp 1 qua các năm chứ không phải là lớp 1 > lớp 2 > lớp 3 > lớp 4 > lớp 5 và năm học 2016-2017 chưa có lớp (sau này sẽ là HTCTTH
Bạn chưa hiểu ý mình, cụ thể thế nay:Loạn chỗ nào vậy bạn??? Bạn muốn sau khi chạy code thì sort theo cột số CT2 (1a, 1b, 1c,...) mà...
Đã chạy được đúng ý. Và bây giờ mới phát sinh sai lầm của tôi không biết có xử lí được không? làm phiền bạn thêm đây: Khi chọn năm nào đó để lọc thì chỉ hiển thị năm học hiện tại và năm học trước đó, còn những năm học sau thì không cần hiển thị. VD khi chọn 2014-2015 thì những HS sinh năm 2008 chỉ hiển thị lớp năm học 2014-2015 học lớp 1, không hiển thị năm học 2015-2016 vì khi đó chưa đi học. Tương tự HS sinh năm 2007 chỉ hiển thị năm học 2013-2014 học lớp 1 và 2014-2015 học lớp 2 còn 2015-2016 chưa đi học. Trân trọng!Bạn có để ý tôi đã sửa tiêu đề 1 chút: của bạn là năm thì thành năm 1, năm 2, năm 3...
Vậy bạn cũng sửa tưởng tự với lớp => lớp 1, lớp 2...
Chú ý: sửa cả 2 bên data với TH => code thực chất chỉ là thao tác Advance filter mà thôi.
Đã chạy được đúng ý. Và bây giờ mới phát sinh sai lầm của tôi không biết có xử lí được không? làm phiền bạn thêm đây: Khi chọn năm nào đó để lọc thì chỉ hiển thị năm học hiện tại và năm học trước đó, còn những năm học sau thì không cần hiển thị. VD khi chọn 2014-2015 thì những HS sinh năm 2008 chỉ hiển thị lớp năm học 2014-2015 học lớp 1, không hiển thị năm học 2015-2016 vì khi đó chưa đi học. Tương tự HS sinh năm 2007 chỉ hiển thị năm học 2013-2014 học lớp 1 và 2014-2015 học lớp 2 còn 2015-2016 chưa đi học. Trân trọng!
Cảm ơn bạn đã giúp đỡ! Tối qua tôi đã xử lí bằng Conditional Formating để dễ quan sát và tạm ổn rồi. Còn dựa vào năm sinh có thể ảnh hưởng đến học sớm học muộn, với trường hợp "hi hữu" này phải sửa trực tiếp vậy! Một lần nữa trân trọng cảm ơn tất cả các bạn!Bạn xử lý trên data nhé vì tôi thấy bạn dùng công thức tại data. Mà dựa vào năm sinh để thiết đặt liệu có "mạo hiểm" không? Bỏ sót trường hợp học sớm, học muộn thì sao bạn?