Lọc dữ liệu với định dạng dd/MM/yyyy

Liên hệ QC

Cuongnv0920

Thành viên chính thức
Tham gia
24/3/18
Bài viết
62
Được thích
8
Giới tính
Nam
mình có cột A là những ngày khác nhau
và bài toán là lọc những ngày này ra từng sheet khác nhau, so sánh với điều kiện vũng ("E1"E3")

Mã:
Sub loc_du_lieu()
    Dim cn As Long
    For Each cn In Sheet1.Range("e1:e3")
    With Sheet1.Range("a1:d10")
    .Parent.AutoFilterMode = False
    .AutoFilter
    .AutoFilter field:=1, Criteria1:=cn
    .Parent.AutoFilter.Range.Copy
    Sheets.Add after:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Range("a1").PasteSpecial xlPasteValues
    End With
    Next
End Sub

với đoạn code này thì nấu cột A là định dạng là (chữ hoặc số) thì code chạy đúng nếu thay "Dim cn As Long" bằng "Dim cn As Range"
nhưng với định dạng dd/MM/yyyy thì code báo lỗi
mong các Pro của PGE chỉ giáo ạ.
 

File đính kèm

Lần chỉnh sửa cuối:
mình có cột A là những ngày khác nhau
và bài toán là lọc những ngày này ra từng sheet khác nhau, so sánh với điều kiện vũng ("E1"E3")

Mã:
Sub loc_du_lieu()
    Dim cn As Long
    For Each cn In Sheet1.Range("e1:e3")
    With Sheet1.Range("a1:d10")
    .Parent.AutoFilterMode = False
    .AutoFilter
    .AutoFilter field:=1, Criteria1:=cn
    .Parent.AutoFilter.Range.Copy
    Sheets.Add after:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Range("a1").PasteSpecial xlPasteValues
    End With
    Next
End Sub

với đoạn code này thì nấu cột A là định dạng là (chữ hoặc số) thì code chạy đúng nếu thay "Dim cn As Long" bằng "Dim cn As Range"
nhưng với định dạng dd/MM/yyyy thì code báo lỗi
mong các Pro của PGE chỉ giáo ạ.
Bạn thử dùng
PHP:
Sub loc_du_lieu()
    Dim cn As Range
    For Each cn In Sheet1.Range("e1:e3")
        With Sheet1.Range("a1:d10")
            .Parent.AutoFilterMode = False
            .AutoFilter
            .AutoFilter Field:=1, Criteria1:=Array(2, cn)
            .Parent.AutoFilter.Range.Copy
            Sheets.Add after:=Sheets(Sheets.Count)
            Sheets(Sheets.Count).Range("a1").PasteSpecial xlPasteValues
        End With
    Next
End Sub
Nếu dữ liệu lớn thì nên sử dụng mảng để tăng tốc độ nhé!
 
Upvote 0
Bạn thử dùng
PHP:
Sub loc_du_lieu()
    Dim cn As Range
    For Each cn In Sheet1.Range("e1:e3")
        With Sheet1.Range("a1:d10")
            .Parent.AutoFilterMode = False
            .AutoFilter
            .AutoFilter Field:=1, Criteria1:=Array(2, cn)
            .Parent.AutoFilter.Range.Copy
            Sheets.Add after:=Sheets(Sheets.Count)
            Sheets(Sheets.Count).Range("a1").PasteSpecial xlPasteValues
        End With
    Next
End Sub
Nếu dữ liệu lớn thì nên sử dụng mảng để tăng tốc độ nhé!
Cám ơn bác @vanthinh3101
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom