Xóa dữ liệu theo điều kiện lọc ngày lớn nhất

Liên hệ QC

Phương Phương mito

Thành viên thường trực
Tham gia
1/5/19
Bài viết
275
Được thích
65
Kính gửi Anh chị,
Em có File số liệu. Tạo Code gì để nó rà soát trong Sheet Nhat Ky Ban Hang với điều kiện lọc và rà soát là ngày tháng tại cột A (Tháng ghi sổ). với điều kiện lọc và xóa dữ liệu là: Lọc và giữ lại số liệu của ngày lớn nhất còn xóa toàn bộ số liệu các tháng còn lại (Ví dụ ở đây: Sẽ giữ lại toàn bộ các dòng của ngày 31/05/2019 và xóa toàn bộ các dòng giữ liệu các tháng còn lại. Em cảm ơn ạ.
 

File đính kèm

Bạn tìm ngày Max trong số đó rồi dùng filter các giá trị không phải là Max. rồi sau đó xóa chúng đi thôi
Mã:
Option Explicit

Sub Delete1()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Nhat ky ban hang")
    
    Dim dateRange As Range
    Set dateRange = ws.Range("A:A")
    
    Dim maxDate As Date
    maxDate = Application.WorksheetFunction.Max(dateRange)
    
    Dim dataRange As Range
    Dim LR As Long
    LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
    Set dataRange = ws.Range("A1", "D" & LR)
    
    dataRange.AutoFilter 1, "<>" & maxDate
    dataRange.Cells.SpecialCells(xlCellTypeVisible).Offset(1, 0).EntireRow.Delete
    ws.AutoFilterMode = False
        
End Sub
 
Upvote 0
Bạn tìm ngày Max trong số đó rồi dùng filter các giá trị không phải là Max. rồi sau đó xóa chúng đi thôi
Mã:
Option Explicit

Sub Delete1()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Nhat ky ban hang")
   
    Dim dateRange As Range
    Set dateRange = ws.Range("A:A")
   
    Dim maxDate As Date
    maxDate = Application.WorksheetFunction.Max(dateRange)
   
    Dim dataRange As Range
    Dim LR As Long
    LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
    Set dataRange = ws.Range("A1", "D" & LR)
   
    dataRange.AutoFilter 1, "<>" & maxDate
    dataRange.Cells.SpecialCells(xlCellTypeVisible).Offset(1, 0).EntireRow.Delete
    ws.AutoFilterMode = False
       
End Sub
Em cảm ơn anh ạ. E học lỏm mãi trên DĐ mà còn kém lắm ạ. Sẽ tiếp tục ạ.
 
Upvote 0
Kính gửi Anh chị,
Em có File số liệu. Tạo Code gì để nó rà soát trong Sheet Nhat Ky Ban Hang với điều kiện lọc và rà soát là ngày tháng tại cột A (Tháng ghi sổ). với điều kiện lọc và xóa dữ liệu là: Lọc và giữ lại số liệu của ngày lớn nhất còn xóa toàn bộ số liệu các tháng còn lại (Ví dụ ở đây: Sẽ giữ lại toàn bộ các dòng của ngày 31/05/2019 và xóa toàn bộ các dòng giữ liệu các tháng còn lại. Em cảm ơn ạ.
Bạn thử cái sub này.
Mã:
Sub laygiatri()
    Dim arr, kq, i As Long, T As String, s, dic As Object, lr As Long, max As Long, dk As Long, j As Integer, a As Long
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("Nhat ky ban hang")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         If lr = 1 Then Exit Sub
         arr = .Range("A2:D" & lr).Value
         .Range("A2:D" & lr).ClearContents
         ReDim kq(1 To UBound(arr), 1 To 4)
         For i = 1 To UBound(arr)
             dk = CLng(arr(i, 1))
             If max < dk Then max = dk
             If Not dic.exists(dk) Then
               dic.Add dk, i
             Else
                T = dic.Item(dk)
                T = T & "#" & i
                dic.Item(dk) = T
             End If
         Next i
             T = dic.Item(max)
         For Each s In Split(T, "#")
             a = a + 1
             For j = 1 To 4
                kq(a, j) = arr(s, j)
             Next j
         Next
         .Range("A2:D2" & a + 1).Value = kq
   End With
End Sub
 
Upvote 0
Hình như thớt đang làm một đồ án chuyển toàn bộ (hoặc gần toàn bộ) hệ thống dữ liệu của mình sang quản lý theo code VBA. Cứ qua ngày lại thấy hỏi 1-2 vấn đề.
Có hai điều cần nhắc nhở:
1. Nên tạm dừng lại, học VBA đến một trình độ nào đó rồi hãy tiếp tục. Nếu cứ đà này mãi sẽ bội thực. Và chủ yếu học quản lý dữ liệu trước. Mấy cái màu mè trình bày, bấm nút này nọ học sau.
2. Nếu muón quản lý dữ liệu chặt chẽ bằng code thì nên dùng Access. Chỉ xuất ra file Excel để báo cáo.
 
Upvote 0
Query:
Select truong1, truong2, ... From Bang Where Ngay In (Select Max(Ngay) From Bang)
 
Upvote 0
Web KT

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

Back
Top Bottom