Poista kaikki solut, joissa on tietoja aiemmista päivämääristä VBA: n avulla

Anonim

Tässä artikkelissa luomme makron poistamaan aiempien päivämäärien tiedot. Tämä makro tarkistaa tiedot, säilyttää tämän päivän tiedot ja poistaa kaikki tiedot aiemmista päivämääristä.

Tämän esimerkin raakatiedot sisältävät päivämäärän, edustajan nimen ja yksittäisen edustajan myynnin kyseisenä päivänä.

Jos haluat suorittaa makron, napsauta Main -taulukon painiketta tai voit jopa suorittaa sen painamalla pikanäppäimiä Alt + F8.

Makro poistaa kaikki tietueet, joissa on aiemmat päivämäärät. Kun suoritamme tämän makron 14. joulukuuta 2016, tulos heijastaa vain kyseisen päivän tietueita.

Looginen selitys

Tässä esimerkissä olemme luoneet "RemovePreviousData" -makron. Tämä makro käyttää käänteistä FOR -silmukkaa, eli silmukka kulkee vastakkaiseen suuntaan. Silmukka alkaa viimeiseltä riviltä ja siirtyy yläriville.

Käänteisen silmukoinnin käytön syy on se, että jos olisimme käyttäneet normaalia FOR -silmukkaa, niin jokaisen rivin poiston jälkeen tiedoissa olevat tietueet olisivat siirtyneet ylöspäin, mikä johtaisi sijainnin muuttumiseen jokaisen rivin poistamisen jälkeen. Joten sen torjumiseksi olemme käyttäneet käänteistä silmukkaa.

Olemme käyttäneet Step -lausetta yhdessä FOR -silmukan kanssa silmukointiin päinvastaiseen suuntaan. FOR -silmukka alkaa viimeisestä rivistä ja kulkee kohti 11th rivi.

Seuraa koodia alla

 Vaihtoehto Explicit Sub RemovePreviousData () Dim Counter, LastRow as Integer 'Viimeisen rivin rivinumeron löytäminen LastRow = ActiveSheet.Range ("A1"). SpecialCells (xlLastCell) .Row' Silmukka viimeiseltä riviltä 11. riville For Counter = LastRow To 11 Vaihe -1 Jos solut (laskuri, 1). Arvo <päivämäärä sitten 'Rivirivien poistaminen (laskuri) Poista loppu, jos seuraava laskurin loppuosa 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse