VBA Last Row - Hvordan finne sist brukte rad i Excel ved hjelp av VBA-kode?

Innholdsfortegnelse:

Anonim

Excel VBA siste rad

Å finne den siste raden i en kolonne er et viktig aspekt når du skriver makroer og gjør de dynamiske. Ettersom vi ikke foretrekker å oppdatere celleområdene nå og da når vi jobber med Excel-cellehenvisninger. Som en koder / utvikler, foretrekker du alltid å skrive en dynamisk kode som kan brukes på alle data og tilfredsstiller kravet ditt. Dessuten vil det alltid være flott hvis du har den siste raden kjent av dataene dine, slik at du dynamisk kan endre koden i henhold til kravet ditt.

Jeg vil bare trekke frem ett eksempel som itererer viktigheten av dynamisk kode.

Anta at jeg har en data som er gitt nedenfor med ansatt og lønnen deres.

Og se på koden gitt nedenfor:

Kode:

 Undereksempel1 () Område ("D2"). Verdi = RegnearkFunksjon.Sum (Område ("B2: B11")) Slutt Sub 

Her skriver denne koden ut summen av lønn for alle ansatte (celle B2: B11 ) i celle D2 . Se bildet nedenfor:

Hva om jeg legger til noen celler i disse dataene og kjører denne koden igjen?

Logisk sett vil koden ovenfor ikke oppsummere alle de 14 radene fra kolonne B. Årsak til det samme er området som vi har oppdatert under WorksheetFunction (som er B2: B11). Dette er grunnen til at en dynamisk kode som kan ta den siste fylte raden i betraktning, blir viktigere for oss.

I denne artikkelen vil jeg introdusere noen metoder som kan være nyttige for å finne ut den siste raden for et gitt datasett ved å bruke VBA-kode.

Hvordan finne sist brukte rad i kolonnen ved hjelp av VBA?

Nedenfor er de forskjellige eksemplene med forskjellige metoder for å finne den sist brukte raden til en kolonne i Excel ved hjelp av VBA-kode.

Du kan laste ned denne VBA Last Row Excel Template her - VBA Last Row Excel Template

Eksempel 1 - Bruke Range.End () -metode

Vel, denne metoden er den samme som å bruke Ctrl + pil ned i Excel for å gå til den siste ikke-tomme raden. Følg trinnene nedenfor for å opprette kode i VBA på lignende linjer for å nå den siste ikke-tomme raden i en kolonne i Excel.

Trinn 1: Definer en variabel som kan ta verdi for den siste ikke-tomme raden med excel-kolonne.

Kode:

 Subeksempel2 () Dim Last_Row As Long End Sub 

Her er variabelen Last_Row definert som LANG bare for å sikre at den kan ta et hvilket som helst antall argumenter.

Trinn 2: Bruk den definerte variabelen for å holde verdien på den siste raden som ikke er tom.

Kode:

 Undereksempel2 () Dim Last_Row As Long Last_Row = End Sub 

Trinn 3: Skriv inn koden som begynner med CELLS (Rows.Count foran Last_Row = .

Kode:

 Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub 

Trinn 4: Nevn 1 etter komma i ovennevnte kode. Verdien numerisk 1 er synonymer til den første kolonnen i excelarket.

Kode:

 Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub 

Denne koden gjør det mulig for VBA å finne ut det totale antallet (tomme + ikke-tomme) rader som er til stede i den første kolonnen i Excel-regnearket. Dette betyr at denne koden lar systemet gå til den siste cellen i Excel.

Hva om du er i den siste cellen i Excel og vil gå opp til den siste ikke-tomme raden? Du vil bruke Ctrl + pil opp, ikke sant?

Den samme logikken vi skal bruke i neste kodelinje.

Trinn 5: Bruk en kombinasjon av Sluttast og xlUp for å gå til den siste ikke-tomme raden i Excel.

Kode:

 Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1). End (xlUp) Slutt Sub 

Dette tar deg til den siste raden som ikke er tom i Excel. Imidlertid ønsket du et radnummer for det samme.

Trinn 6: Bruk ROW for å få radnummeret til den siste raden som ikke er tom.

Kode:

 Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1). End (xlUp) .Row End Sub 

Trinn 7: Vis verdien til Last_Row som inneholder det siste ikke-tomme radnummeret ved å bruke MsgBox.

Kode:

 Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub 

Trinn 8: Kjør koden ved å bruke Kjør-knappen eller trykke på F5 og se utgangen.

Produksjon:

Trinn 9: La oss nå slette en rad og se om koden gir et nøyaktig resultat eller ikke. Det vil hjelpe oss med å sjekke dynamikken i koden vår.

Eksempel 2 - Bruke Range og SpecialCells

Vi kan også bruke Range og SepcialCells-egenskapen til VBA for å få den siste ikke-tomme raden på excelarket.

Følg trinnene nedenfor for å få den siste ikke-tomme raden i Excel ved hjelp av VBA-kode:

Trinn 1: Definer en variabel igjen som Long.

Kode:

 Undereksempel3 () Dim Last_Row As Long End Sub 

Trinn 2: Begynn å lagre verdien til variabelen Last_Row ved å bruke tildelingsoperatøren.

Kode:

 Undereksempel3 () Dim Last_Row As Long Last_Row = End Sub 

Trinn 3: Begynn å skrive inn rekkevidde (“A: A”) .

Kode:

 Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A") Slutt Sub 

Trinn 4: Bruk SpecialCells-funksjonen for å finne ut den siste ikke-tomme cellen.

Kode:

 Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Denne funksjonen SpecialCells velger den siste cellen fra excel-en din som det er skrevet parentesene ( xlCellTypeLastCell gjør det mulig å velge den siste ikke-tomme cellen fra excelarket).

Trinn 5: Bruk nå ROW for å få den siste raden fra excelarket.

Kode:

 Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Dette vil returnere den siste ikke-tomme raden for deg fra excel.

Trinn 6: Nå, tilordne denne verdien av Last_Row til MsgBox slik at vi kan se det siste ikke-tomme radnummeret i meldingsboksen.

Kode:

 Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Trinn 7: Kjør koden ved å trykke på F5 eller Run-knappen plassert øverst i venstre hjørne.

Produksjon:

Du kan se at det siste ikke-tomme celletallet sprettes ut gjennom MsgBox med referanse til kolonnen A. Fordi vi har nevnt kolonnen A under Range-funksjon mens vi definerer variabelformelen.

Trinn 8: Hvis vi sletter en rad og kan kjøre denne formelen. La oss se hva som skjer.

Du kan se at systemet fremdeles har gitt radtelling som 14. Selv om jeg har slettet en rad og faktisk radantall er 13, har ikke systemet fanget radtellingen nøyaktig. For at systemet skal fange opp den faktiske radtellingen, må du lagre regnearket og kjøre koden på nytt.

Du kan se det faktiske antall rekker som vises i dette skjermbildet nå.

Eksempel 3 - Bruke Range.Find ()

Følg trinnene nedenfor for å få den siste ikke-tomme raden i Excel ved hjelp av VBA-kode:

Trinn 1: Definer en variabel så lenge.

Kode:

 Subeksempel4 () Dim Last_Row As Long End Sub 

Trinn 2: Nå bruker du følgende kode for å se den siste raden som ikke er tom.

Kode:

 Undereksempel4 () Dim Last_Row As Long Last_Row = Cells.Find (Hva: = "*", _ Etter: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub 

Her ser FIND-funksjonen etter en første ikke-blank celle. Asterisk (*) er en jokertekstoperatør som hjelper deg med å finne ut av det samme.

Med start fra celle A1 går systemet tilbake til den siste cellen fra arket og søker i en retning bakover (xlPrevious). Den beveger seg fra høyre til venstre (xlByRows) og løkker opp i det samme arket gjennom alle radene på lignende linjer til den finner en ikke-blank rad (se .ROW på slutten av koden).

Trinn 3: Bruk MsgBox til å lagre verdien på den siste ikke-tomme raden og se den som en popup-boks.

Kode:

 Undereksempel4 () Dim Last_Row As Long Last_Row = Cells.Find (Hva: = "*", _ Etter: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub 

Trinn 4: Kjør koden og se utdataene som en pop-up-boks som inneholder det siste ikke-tomme radnummeret.

Produksjon:

Ting å huske

  • Slutt (eksempel 1) kan brukes til å finne ut den første tomme cellen / raden, eller den siste ikke-tomme cellen / raden i en gitt kolonne ved å bruke VBA-kode.
  • Slutten fungerer på én kolonne mesteparten av tiden. Hvis du har data i intervaller, vil det være vanskelig å bestemme hvilken kolonne som skal brukes for å finne ut den siste ikke-tomme raden.
  • Finn (eksempel 3) fungerer på et helt område fra startpunkt og finner ut den siste ikke-tomme cellen / raden i en gitt kolonne ved hjelp av VBA-kode. Den kan også brukes til å finne ut den siste kolonnen som ikke er tom.

Anbefalte artikler

Dette er en guide til VBA Last Row. Her diskuterer vi hvordan du finner den siste brukte raden i en gitt kolonne sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også se på følgende artikler for å lære mer -

  1. Hvordan bruke VBA-innsatskolonne?
  2. Hvordan velge Excel-rader og kolonner?
  3. Oversikt over VBA Range Cells
  4. Hvordan legge til celler i Excel?