Usuń wszystkie komórki z danymi z poprzednich dat za pomocą VBA

Anonim

W tym artykule stworzymy makro do usuwania danych z poprzednich dat. To makro sprawdza dane, zachowuje dzisiejsze dane i usuwa wszystkie dane z poprzednich dat.

Surowe dane w tym przykładzie składają się z daty, nazwy agenta i sprzedaży indywidualnego agenta w tym konkretnym dniu.

Aby uruchomić makro, kliknij przycisk na arkuszu „Główne” lub można je nawet uruchomić, naciskając klawisze skrótu Alt + F8.

Makro usunie wszystkie rekordy z poprzednimi datami. Ponieważ uruchomimy to makro 14 grudnia 2016 r., dane wyjściowe będą odzwierciedlać rekordy tylko dla tej daty.

Wyjaśnienie logiczne

W tym przykładzie stworzyliśmy makro „RemovePreviousData”. To makro używa odwróconej pętli FOR, co oznacza, że ​​pętla działa w przeciwnym kierunku. Pętla zaczyna się od ostatniego rzędu i przesuwa się w kierunku górnego rzędu.

Powodem używania pętli odwrotnej jest to, że gdybyśmy użyli normalnej pętli FOR, to po każdym usunięciu wiersza rekordy obecne w danych przesuwałyby się w górę, co powodowało zmianę pozycji przy każdym usunięciu wiersza. Aby temu przeciwdziałać, zastosowaliśmy pętlę odwrotną.

Użyliśmy instrukcji Step wraz z pętlą FOR do zapętlenia w odwrotnym kierunku. Pętla FOR zaczyna się od ostatniego rzędu i biegnie w kierunku 11NS wiersz.

Proszę postępować zgodnie z poniższym kodem!

 Option Explicit Sub RemovePreviousData() Dim Counter, LastRow As Integer 'Znajdowanie numeru wiersza ostatniego wiersza LastRow = ActiveSheet.Range("A1").SpecialCells(xlLastCell).Row 'Pętla od ostatniego wiersza do 11. wiersza For Counter = LastRow To 11 Step -1 If Cells(Counter, 1)).Value < Date Then 'Usuwanie wiersza Rows(Counter).Delete End If Next Counter End Sub 

Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.

Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail