lọc theo điều kiện từ ngày đến ngày (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyen nguyen phuc

Thành viên mới
Tham gia
15/8/17
Bài viết
5
Được thích
0
Help me!
nhờ mấy anh/chị giúp giùm mình. Tình huống : mình cần lọc dữ liệu từ sheet(data) với điều kiện từ ngày đến ngày được khai báo ở sheet(ngay), sau đó tự động dán vào sheet(chitiet) các dữ liệu thỏa mãn điều kiện lọc. mới học VBA nên chưa có kiến thức sâu lắm, kính nhờ anh chị giúp đỡ. cảm ơn nhiều
 

File đính kèm

Help me!
nhờ mấy anh/chị giúp giùm mình. Tình huống : mình cần lọc dữ liệu từ sheet(data) với điều kiện từ ngày đến ngày được khai báo ở sheet(ngay), sau đó tự động dán vào sheet(chitiet) các dữ liệu thỏa mãn điều kiện lọc. mới học VBA nên chưa có kiến thức sâu lắm, kính nhờ anh chị giúp đỡ. cảm ơn nhiều

Bạn thử code này nhé.Nếu định dạng ngày tháng của bạn, mà không đúng chuẩn, mình cũng chịu thua đó.

PHP:
Sub Filter_Date()
    Dim Arr(), darr()
    Dim Nam As Integer, Thang As Integer, Ngay As Integer
    Dim i As Long, k As Long
    Arr = Sheet2.Range("A2:B" & Sheet2.Range("B65000").End(xlUp).Row)
    ReDim darr(1 To UBound(Arr), 1 To 2)
    For i = 1 To UBound(Arr, 1)
        Nam = VBA.Year(Arr(i, 2))
        Thang = VBA.Month(Arr(i, 2))
        Ngay = VBA.Day(Arr(i, 2))
        Arr(i, 2) = VBA.DateSerial(Nam, Thang, Ngay)
    Next i
   
    For i = 1 To UBound(Arr)
        If Arr(i, 2) > Sheet4.Range("B3").Value And Arr(i, 2) < Sheet4.Range("B4").Value Then
            k = k + 1
            darr(k, 1) = Arr(i, 1)
            darr(k, 2) = Arr(i, 2)
        End If
    Next i
Sheet3.Range("A2:B65000").ClearContents
If k > 0 Then Sheet3.Range("A2").Resize(UBound(darr), 2) = darr
End Sub
 
Lần chỉnh sửa cuối:
Bạn thử code này nhé.Nếu định dạng ngày tháng của bạn, mà không đúng chuẩn, mình cũng chịu thua đó.

PHP:
Sub Filter_Date()
    Dim Arr(), darr()
    Dim Nam As Integer, Thang As Integer, Ngay As Integer
    Dim i As Long, k As Long
    Arr = Sheet2.Range("A2:B" & Sheet2.Range("B65000").End(xlUp).Row)
    ReDim darr(1 To UBound(Arr), 2)
    For i = 1 To UBound(Arr, 1)
        Nam = VBA.Year(Arr(i, 2))
        Thang = VBA.Month(Arr(i, 2))
        Ngay = VBA.Day(Arr(i, 2))
        Arr(i, 2) = VBA.DateSerial(Nam, Thang, Ngay)
    Next i
  
    For i = 1 To UBound(dArr)
        If Arr(i, 2) > Sheet4.Range("B3").Value And Arr(i, 2) < Sheet4.Range("B4").Value Then
            k = k + 1
            darr(k, 1) = Arr(i, 1)
            darr(k, 2) = Arr(i, 2)
        End If
    Next i
  
Sheet3.Range("A2").Resize(UBound(darr), 2) = Arr
End Sub
Hình như kết quả chưa đúng bạn ơi.
 
Help me!
nhờ mấy anh/chị giúp giùm mình. Tình huống : mình cần lọc dữ liệu từ sheet(data) với điều kiện từ ngày đến ngày được khai báo ở sheet(ngay), sau đó tự động dán vào sheet(chitiet) các dữ liệu thỏa mãn điều kiện lọc. mới học VBA nên chưa có kiến thức sâu lắm, kính nhờ anh chị giúp đỡ. cảm ơn nhiều
Bạn làm như sau:
1. Đầu tiên bạn định dạng lại cột B của Sheets("data") bằng cách sau:
Chọn cột B, vào Data ----> Text To Columns ----> Next ----> Finish
2. Sau đó bạn cho chạy Code dưới đây:
PHP:
Sub abc()
    Dim LR As Long, BD As Double, KT As Double
    LR = Sheets("data").Cells(Rows.Count, "A").End(xlUp).Row
    BD = Sheets("ngay").Range("B3").Value2
    KT = Sheets("ngay").Range("B4").Value2
    With Sheets("data")
        .AutoFilterMode = False
        .Range("A1:B" & LR).AutoFilter Field:=2, Criteria1:=">=" & BD, Operator:=xlAnd, Criteria2:="<=" & KT
         .Range("A2:B" & LR).SpecialCells(2).Copy Sheets("chitiet").Range("A2")
    End With
End Sub
 
Help me!
nhờ mấy anh/chị giúp giùm mình. Tình huống : mình cần lọc dữ liệu từ sheet(data) với điều kiện từ ngày đến ngày được khai báo ở sheet(ngay), sau đó tự động dán vào sheet(chitiet) các dữ liệu thỏa mãn điều kiện lọc. mới học VBA nên chưa có kiến thức sâu lắm, kính nhờ anh chị giúp đỡ. cảm ơn nhiều
Chia sẻ cho bạn một cách mới để bạn tham khảo nhé!
 
Web KT

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

Back
Top Bottom