Trong bài viết này, chúng tôi sẽ tạo macro để xóa dữ liệu của các ngày trước đó. Macro này kiểm tra dữ liệu, giữ dữ liệu của ngày hôm nay và xóa tất cả dữ liệu của những ngày trước đó.

Dữ liệu thô trong ví dụ này bao gồm ngày, tên đại lý và doanh số của từng đại lý vào ngày cụ thể đó.

ArrowRawData

Để chạy macro, hãy nhấp vào nút trên trang tính “Chính” hoặc thậm chí người ta có thể chạy macro bằng cách nhấn phím tắt Alt + F8.

Macro sẽ xóa tất cả các bản ghi có ngày trước đó. Khi chúng tôi chạy macro này vào ngày 14 tháng 12 năm 2016, đầu ra sẽ chỉ phản ánh các bản ghi cho ngày đó.

ArrowAfterRunningMacro

[_GoBack] # Giải thích logic Trong ví dụ này, chúng tôi đã tạo macro “RemovePreviousData”. Macro này sử dụng vòng lặp FOR ngược, có nghĩa là vòng lặp chạy theo hướng ngược lại. Vòng lặp bắt đầu từ hàng cuối cùng và di chuyển về phía hàng trên cùng.

Lý do sử dụng vòng lặp ngược là nếu chúng ta đã sử dụng vòng lặp FOR bình thường, thì sau mỗi lần xóa hàng, các bản ghi có trong dữ liệu sẽ dịch chuyển lên trên, dẫn đến thay đổi vị trí với mỗi lần xóa hàng. Vì vậy, để chống lại điều đó, chúng tôi đã sử dụng vòng lặp ngược.

Chúng tôi đã sử dụng câu lệnh Step cùng với vòng lặp FOR để lặp lại theo hướng ngược lại. Vòng lặp FOR bắt đầu từ hàng cuối cùng và lặp đến hàng thứ 11 ^.

Vui lòng theo dõi bên dưới để biết mã

Option Explicit

Sub RemovePreviousData()

Dim Counter, LastRow As Integer

'Finding the row number of last row

LastRow = ActiveSheet.Range("A1").SpecialCells(xlLastCell).Row

'Looping from last row to 11th row

For Counter = LastRow To 11 Step -1

If Cells(Counter, 1).Value < Date Then

'Deleting the row

Rows(Counter).Delete

End If

Next Counter

End Sub

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]