3 najboljši načini za iskanje zadnje prazne vrstice in stolpca z uporabo VBA

Anonim

Iskanje zadnje uporabljene vrstice in stolpca je ena osnovnih in pomembnih nalog za vsako avtomatizacijo v Excelu z uporabo VBA. Za samodejno sestavljanje listov, delovnih zvezkov in urejanje podatkov morate najti omejitev podatkov na listih.

Ta članek bo na najlažji način razložil vsako metodo iskanja zadnje vrstice in stolpca v Excelu.
1. Poiščite zadnjo prazno vrstico v stolpcu z uporabo Range.End
Najprej poglejmo kodo. Bom razložil črko.

Sub getLastUsedRow () Dim last_row As Integer last_row = Celice (Rows.Count, 1) .End (xlUp) .Row 'Ta vrstica dobi zadnjo vrstico Debug.Print last_row End Sub

Zgornji pododstavek najde zadnjo vrstico v stolpcu 1.

Kako deluje?
To je tako, kot če bi šli v zadnjo vrstico na listu in nato pritisnili bližnjico CTRL+GOR.
Celice (vrstice, število, 1): Ta del izbere celico v stolpcu A. Vrstice.Število daje 1048576, kar je običajno zadnja vrstica v Excelovem listu.

Celice (1048576, 1)

.Konec (xlUp): End je metoda razreda obsega, ki se uporablja za krmarjenje po listih do koncev. xlUp je spremenljivka, ki pove smer. Ta ukaz skupaj izbere zadnjo vrstico s podatki.

Celice (vrstice. Število, 1). Konec (xlUp)

.Vrstica: vrstica vrne številko vrstice izbrane celice. Tako dobimo številko vrstice zadnje celice s podatki v stolpcu A. v našem primeru je 8.

Poglejte, kako enostavno je najti zadnje vrstice s podatki. Ta metoda bo izbrala zadnjo vrstico v podatkih, ne glede na prazne celice pred njo. Na sliki lahko vidite, da ima samo celica A8 podatke. Vse prejšnje celice so prazne, razen A4.

Izberite zadnjo celico s podatki v stolpcu
Če želite izbrati zadnjo celico v stolpcu A, odstranite ».row« s konca in napišite .select.

Sub getLastUsedRow () Celice (Rows.Count, 1) .End (xlUp). Izberite 'Ta vrstica izbere zadnjo celico v stolpcu End Sub

Ukaz ».Select« izbere aktivno celico.
Pridobite stolpec z naslovom zadnje celice
Če želite naslov zadnje celice dobiti v stolpec A, odstranite ».row« s konca in napišite .address.

Sub getLastUsedRow () add = Cells (Rows.Count, 1) .End (xlUp) .address 'Ta vrstica izbere zadnjo celico v stolpcu Debug.print add End Sub

Razpon.Naslov funkcija vrne naslov aktivne celice.
Poišči zadnji prazen stolpec v vrsti
To je skoraj enako, kot če bi v stolpcu našli zadnjo prazno celico. Tukaj dobimo številko stolpca zadnje celice s podatki v 4. vrstici.

Sub getLastUsedCol () Dim last_col As Integer last_col = Cells (4, Columns.Count) .End (xlToLeft) .Column 'Ta vrstica dobi zadnji stolpec Debug.Print last_col End Sub


Na sliki lahko vidite, da vrne številko stolpca zadnje prazne celice v 4. vrstici. To je 4.
Kako deluje?

No, mehanika je enaka iskanju zadnje celice s podatki v stolpcu. Pravkar smo uporabili ključne besede, povezane s stolpci.
Izberite nabor podatkov v Excelu z uporabo VBA
Zdaj vemo, kako do zadnje vrstice in zadnjega stolpca Excela z uporabo VBA. Na ta način lahko preprosto izberemo tabelo ali nabor podatkov. Ko izberemo nabor podatkov ali tabelo, lahko nad njimi izvedemo več operacij, kot so copy-paste, oblikovanje, brisanje itd.
Tu imamo nabor podatkov. Ti podatki se lahko razširijo navzdol. Samo začetna celica je fiksna, to je B4. Zadnja vrstica in stolpec nista fiksni. Dinamično moramo izbrati celotno tabelo z uporabo vba.

Koda VBA za izbiro tabele s praznimi celicami

Sub select_table () Dim last_row, last_col As Long 'Pridobite zadnjo vrstico last_row = Celice (Vrstice.Število, 2). Konec (xlUp) .Row' Pridobite zadnji stolpec last_col = Celice (4, Stolpci.Število). . Stolpec 'Izberite celoten obseg tabele (celice (4, 2), celice (last_row, last_col)). Izberite End Sub

Ko to zaženete, bo celotna tabela izbrana v delčku sekunde. Dodate lahko nove vrstice in stolpce. Vedno bo izbral celotne podatke.

Prednosti te metode:

  1. To je enostavno. Dobesedno smo napisali samo eno vrstico, da bi dobili zadnjo vrstico s podatki. To olajša delo.
  2. Hitro. Manj vrstice kode, manj časa.
  3. Lahko razumeti.
  4. Deluje odlično, če imate nerodne podatkovne tabele s fiksnim izhodiščem.

Slabosti Range.End metode:

  1. Izhodišče je treba poznati.
  2. Zadnjo neprazno celico lahko dobite samo v znani vrstici ali stolpcu. Ko vaše izhodišče ni določeno, bo neuporabno. Kar je zelo manj verjetno.

2. Poišči zadnjo vrstico s funkcijo Find ()
Najprej poglejmo kodo.

 Sub last_row () lastRow = ActiveSheet.Cells.Find ("*", vrstni red iskanja: = xlByRows, smer iskanja: = xlPrejšnji). 


Kot lahko vidite na sliki, ta koda natančno vrne zadnjo vrstico.
Kako deluje?
Tukaj uporabljamo funkcijo find za iskanje katere koli celice, ki vsebuje katero koli stvar, z uporabo operatorja wildcard "*". Zvezdica se uporablja za iskanje karkoli, besedila ali številke.

Vrstni red iskanja nastavimo po vrsticah (vrstni red iskanja: = xlByRows). Excelu vba tudi povemo smer iskanja kot xlPrevious (searchdirection: = xlPrevious). Omogoča funkcijo iskanja za iskanje od konca lista, po vrsticah. Ko najde celico, ki vsebuje karkoli, se ustavi. Za pridobivanje zadnje vrstice iz aktivne celice uporabljamo metodo Range.Row.

Prednosti funkcije Find za pridobivanje zadnje celice s podatki:

  1. Ni vam treba poznati izhodišča. Dobiš samo zadnjo vrsto.
  2. Lahko je generičen in se lahko uporabi za iskanje zadnje celice s podatki na katerem koli listu brez kakršnih koli sprememb.
  3. Lahko se uporabi za iskanje zadnjega primerka določenega besedila ali številke na listu.

Slabosti funkcije Find ():

  1. To je grdo. Preveč argumentov.
  2. Je počasen.
  3. Ne morem uporabiti, da dobim zadnji stolpec, ki ni prazen. Tehnično lahko. Vendar postane prepočasen.

3. Uporaba funkcije SpecialCells za dosego zadnje vrstice
Funkcija SpecialCells z argumentom xlCellTypeLastCell vrne zadnjo uporabljeno celico. Najprej si oglejmo kodo

Sub spl_last_row_ () lastRow = ActiveSheet.Cells.Posebne celice (xlCellTypeLastCell).Razni odpravljanje napak. Natisni zadnjo


Če zaženete zgornjo kodo, boste dobili številko vrstice zadnje uporabljene celice.

Kako deluje?

To je vba ekvivalent bližnjice CTRL+End v Excelu. Izbere zadnjo uporabljeno celico. Če makro posnamete s pritiskom na CTRL+End, boste dobili to kodo.

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

Uporabili smo ga samo za pridobitev številke vrstice zadnje uporabljene celice.

Opomba: Kot sem rekel zgoraj, bo ta metoda vrnila zadnjo uporabljeno celico in ne zadnjo celico s podatki. Če izbrišete podatke v zadnji celici, bo nad kodo vba še vedno vrnil isti sklic na celice, saj je bila to »zadnja uporabljena celica«. Dokument morate najprej shraniti, da dobite zadnjo celico s podatki po tej metodi.

Brisanje listov brez potrditvenih pozivov z uporabo VBA v programu Microsoft Excel

Dodajte in shranite nov delovni zvezek z uporabo VBA v programu Microsoft Excel 2016

Prikaz sporočila v vrstici stanja Excel VBA

Izklopite opozorilna sporočila z uporabo VBA v programu Microsoft Excel 2016

Priljubljeni članki:

Funkcija VLOOKUP v Excelu

COUNTIF v Excelu 2016

Kako uporabljati funkcijo SUMIF v Excelu