Radera alla celler med data från tidigare datum med VBA

Anonim

I den här artikeln kommer vi att skapa ett makro för att radera data från tidigare datum. Detta makro kontrollerar data, behåller dagens data och raderar all data från tidigare datum.

Rådata i detta exempel består av datum, agentnamn och försäljning av den enskilda agenten på det specifika datumet.

För att köra makrot, klicka på knappen på "Main" -arket eller så kan du till och med köra det genom att trycka på snabbtangenterna Alt + F8.

Makro raderar alla poster med tidigare datum. När vi kör detta makro den 14 december 2016 kommer resultatet att återspegla poster endast för det datumet.

Logisk förklaring

I det här exemplet har vi skapat ”RemovePreviousData” -makro. Detta makro använder omvänd FOR -slinga, betyder att loop går i motsatt riktning. Loop börjar från den sista raden och rör sig mot den översta raden.

Anledningen till att använda omvänd looping är att om vi hade använt normal FOR -slinga, så skulle posterna som finns i data ha skiftat uppåt efter varje radborttagning, vilket resulterat i ändrad positionering för varje radradering. Så för att motverka det har vi använt omvänd loop.

Vi har använt Step -sats tillsammans med FOR -loop för looping i omvänd riktning. FOR -slingan börjar från sista raden och slingrar mot 11th rad.

Följ koden nedan

 Alternativ Explicit Sub RemovePreviousData () Dim Counter, LastRow As Integer 'Hitta radnumret för sista raden LastRow = ActiveSheet.Range ("A1"). SpecialCells (xlLastCell) .Row' Looping from last row to 11th row For Counter = LastRow To 11 Steg -1 Om Celler (Räknare, 1) .Värde <Datum Sedan 'Radera raden Rad (Räknare) .Radera Slut Om Nästa Räknare Slut Sub 

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen