Xóa dữ liệu cũ khỏi trang tính (Microsoft Excel)
Gene đang tìm cách xóa nhanh dữ liệu khỏi trang tính dựa trên ngày tháng trong một cột cụ thể. Nếu ngày cũ hơn hôm nay (ngày đã qua) thì hàng đó sẽ bị xóa.
Điều này có thể được thực hiện khá dễ dàng với macro. Tất cả những gì bạn cần làm là bước macro thông qua dữ liệu và so sánh ngày trong mỗi hàng với ngày hôm nay. Nếu ngày nhỏ hơn ngày hôm nay, thì phương thức Xóa được sử dụng trên đối tượng EntireRow.
Sub DeleteRows1() Dim x As Long Dim iCol As Integer iCol = 7 'Filter all on Col G For x = Cells(Cells.Rows.Count, iCol).End(xlUp).Row To 2 Step -1 If Cells(x, iCol).Value < Date Then Cells(x, iCol).EntireRow.Delete End If Next End Sub
Trong ví dụ này, macro kiểm tra cột G (trong biến iCol) để tìm ngày. Nếu ngày của bạn nằm trong một cột khác, thì bạn nên thực hiện thay đổi đối với biến. Tùy thuộc vào số lượng hàng dữ liệu trong trang tính của bạn, macro cũng có thể mất khá nhiều thời gian để chạy.
Nếu bạn nhận thấy sự chậm trễ trong hiệu suất, thì bạn có thể muốn sử dụng một cách tiếp cận khác. Ví dụ sau sử dụng khả năng Tự động lọc của Excel để lọc dữ liệu trước tiên để chỉ hiển thị dữ liệu cũ, sau đó xóa các hàng đó.
Sub DeleteRows2() Dim Dates As Range Dim nRows As Double Dim currDate As Variant 'Format dates as text Range("Dates").NumberFormat = "@" 'Today's date in number format currDate = CDbl(Date) Range("Dates").AutoFilter Field:=1, _ Criteria1:="<" & currDate nRows = Range("Dates").Rows.Count Rows("2:" & nRows).Select Selection.Delete Shift:=xlUp Range("Dates").AutoFilter Range("Dates").NumberFormat = "m/d/yyyy" Range("C2").Select End Sub
Macro này giả định rằng bạn đã thực hiện bước gán tên cho phạm vi dữ liệu của mình. Chọn tất cả các ô trong bảng dữ liệu của bạn — bao gồm bất kỳ hàng tiêu đề nào — và đặt tên cho nó là “Ngày”. Khi bạn chạy macro, nó sử dụng phạm vi này làm mục tiêu cho Bộ lọc tự động.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (3384) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: