3 beste måter å finne siste ikke-tomme rad og kolonne ved hjelp av VBA

Innholdsfortegnelse

Å finne sist brukte rad og kolonne er en av de grunnleggende og viktige oppgavene for enhver automatisering i Excel ved hjelp av VBA. For å kompilere ark, arbeidsbøker og ordne data automatisk, må du finne grensen for dataene på ark.

Denne artikkelen vil forklare hver metode for å finne siste rad og kolonne i excel på enkleste måter.
1. Finn siste ikke-tomme rad i en kolonne med Range.End
La oss se koden først. Jeg skal forklare det brev.

Sub getLastUsedRow () Dim last_row As Integer last_row = Cells (Rows.Count, 1) .End (xlUp) .Row ‘This line gets the last row Debug.Print last_row End Sub

Ovennevnte del finner den siste raden i kolonne 1.

Hvordan det fungerer?
Det er akkurat som å gå til siste rad i arket og deretter trykke CTRL+UP snarvei.
Celler (rader, antall, 1): Denne delen velger celle i kolonne A. Rader. Count gir 1048576, som vanligvis er den siste raden i Excel -ark.

Celler (1048576, 1)

.Slutt (xlUp): Slutt er en metode for områdeklasse som brukes til å navigere i ark til ender. xlUp er variabelen som forteller retningen. Sammen velger denne kommandoen den siste raden med data.

Celler (Rader, Antall, 1). Slutt (xlUp)

.Rad: rad returnerer radnummeret til den valgte cellen. Derfor får vi radnummeret til den siste cellen med data i kolonne A. i eksemplet er det 8.

Se hvor enkelt det er å finne de siste radene med data. Denne metoden vil velge siste rad i data uavhengig av tomme celler før den. Du kan se det på bildet at bare celle A8 har data. Alle foregående celler er tomme unntatt A4.

Velg den siste cellen med data i en kolonne
Hvis du vil velge den siste cellen i A -kolonnen, er det bare å fjerne ".row" fra slutten og skrive .velg.

Sub getLastUsedRow () Cells (Rows.Count, 1) .End (xlUp) .Velg ‘Denne linjen velger den siste cellen i en kolonne End Sub

Kommandoen ".Velg" velger den aktive cellen.
Få den siste cellens adressekolonne
Hvis du vil få den siste cellens adresse i en kolonne, er det bare å fjerne ".row" fra slutten og skrive .adresse.

Sub getLastUsedRow () add = Cells (Rows.Count, 1) .End (xlUp) .address ‘Denne linjen velger den siste cellen i en kolonne Debug.print add End Sub

Utvalget.Adresse funksjonen returnerer adressen til aktivcellen.
Finn siste ikke-tomme kolonne på rad
Det er nesten det samme som å finne den siste ikke -tomme cellen i en kolonne. Her får vi kolonnenummer for siste celle med data i rad 4.

Sub getLastUsedCol () Dim last_col As Integer last_col = Cells (4, Columns.Count) .End (xlToLeft) .Column ‘Denne linjen får den siste kolonnen Debug.Print last_col End Sub


Du kan se på bildet at den returnerer den siste ikke -tomme cellens kolonnenummer i rad 4. Som er 4.
Hvordan det fungerer?

Vel, mekanikken er det samme som å finne siste celle med data i en kolonne. Vi har nettopp brukt søkeord relatert til kolonner.
Velg datasett i Excel ved hjelp av VBA
Nå vet vi hvordan du får siste rad og siste kolonne med excel ved hjelp av VBA. Ved å bruke det kan vi enkelt velge en tabell eller et datasett. Etter å ha valgt datasett eller tabell, kan vi utføre flere operasjoner på dem, for eksempel kopi-lim inn, formatering, sletting etc.
Her har vi datasett. Disse dataene kan utvides nedover. Bare startcellen er fikset, som er B4. Den siste raden og kolonnen er ikke løst. Vi må velge hele tabellen dynamisk ved hjelp av vba.

VBA -kode for å velge tabell med tomme celler

Sub select_table () Dim last_row, last_col As Long 'Get last row last_row = Cells (Rows.Count, 2). End (xlUp) .Row' Get last column last_col = Cells (4, Columns.Count) .End (xlToLeft) .Column 'Velg hele tabellområdet (Celler (4, 2), Cells (last_row, last_col)). Velg End Sub

Når du kjører dette, blir hele tabellen valgt i brøkdel av et sekund. Du kan legge til nye rader og kolonner. Det vil alltid velge hele dataene.

Fordeler med denne metoden:

  1. Det er lett. Vi skrev bokstavelig talt bare en linje for å få siste rad med data. Dette gjør det enkelt.
  2. Fort. Mindre kodelinje, mindre tid tatt.
  3. Enkelt å forstå.
  4. Fungerer perfekt hvis du har en klønete datatabell med fast utgangspunkt.

Ulemper med rekkevidde Sluttmetode:

  1. Utgangspunktet må være å vite.
  2. Du kan bare få den siste ikke-tomme cellen i en kjent rad eller kolonne. Når utgangspunktet ditt ikke er løst, vil det være ubrukelig. Noe som er svært lite sannsynlig.

2. Finn siste rad ved hjelp av funksjonen Find ()
La oss se koden først.

 Sub last_row () lastRow = ActiveSheet.Cells.Find ("*", searchorder: = xlByRows, searchdirection: = xlPrevious) .Row Debug.Print lastRow End Sub 


Som du kan se det i bildet, returnerer denne koden den siste raden nøyaktig.
Hvordan det fungerer?
Her bruker vi finn -funksjonen til å finne en celle som inneholder noe som bruker wild card -operatøren "*". Stjerne brukes til å finne alt, tekst eller tall.

Vi angir søkerekkefølge etter rader (søkeordre: = xlByRows). Vi forteller også excel vba søkeretningen som xlPrevious (searchdirection: = xlPrevious). Det gjør finne -funksjonen til å søke fra slutten av arket, radvis. Når den finner en celle som inneholder noe, stopper den. Vi bruker Range.Row -metoden for å hente siste rad fra aktiv celle.

Fordeler med Finn -funksjonen for å få siste celle med data:

  1. Du trenger ikke å vite utgangspunktet. Det gir deg bare siste rad.
  2. Den kan være generisk og kan brukes til å finne siste celle med data i ethvert ark uten endringer.
  3. Kan brukes til å finne en siste forekomst av spesifikk tekst eller tall på arket.

Cons of Find () -funksjon:

  1. Det er stygt. For mange argumenter.
  2. Det er sakte.
  3. Kan ikke bruke for å få den siste ikke -tomme kolonnen. Teknisk sett kan du. Men det blir for sakte.

3. Bruke SpecialCells -funksjon for å få siste rad
SpecialCells -funksjonen med xlCellTypeLastCell -argumentet returnerer den sist brukte cellen. La oss se koden først

Sub spl_last_row_ () lastRow = ActiveSheet.Cells.SpecialCells (xlCellTypeLastCell).Row Debug.Print lastRow End Sub


Hvis du kjører koden ovenfor, får du radnummeret til den siste brukte cellen.

Hvordan det fungerer?

Dette er vba -ekvivalenten til snarvei CTRL+Slutt i excel. Den velger den sist brukte cellen. Hvis du spiller inn makroen mens du trykker CTRL+End, får du denne koden.

Sub Macro1 () '' Macro1 Macro '' ActiveCell.SpecialCells (xlLastCell) .Velg End Sub 

Vi brukte den bare for å få den siste brukte cellens radnummer.

Merk: Som jeg sa ovenfor, vil denne metoden returnere den sist brukte cellen, ikke siste cellen med data. Hvis du sletter dataene i den siste cellen, vil ovenstående vba -kode fortsatt returnere den samme cellereferansen, siden den var den "sist brukte cellen". Du må lagre dokumentet først for å få siste celle med data ved hjelp av denne metoden.

Slett ark uten bekreftelsesforespørsler ved hjelp av VBA i Microsoft Excel

Legg til og lagre ny arbeidsbok ved hjelp av VBA i Microsoft Excel 2016

Vis en melding på Excel VBA -statuslinjen

Slå av advarselsmeldinger ved hjelp av VBA i Microsoft Excel 2016

Populære artikler:

VLOOKUP -funksjonen i Excel

COUNTIF i Excel 2016

Slik bruker du SUMIF -funksjonen i Excel

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave