3 parimat viisi viimase tühja rea ​​ja veeru leidmiseks VBA abil

Lang L: none (table-of-contents)

Viimati kasutatud rea ja veeru leidmine on üks põhilisi ja olulisi ülesandeid mis tahes VBA -d kasutavas Excelis. Lehtede, töövihikute koostamiseks ja andmete automaatseks korraldamiseks peate leidma lehtede andmete limiidi.

See artikkel selgitab kõiki meetodeid, kuidas Excelist viimast rida ja veergu kõige lihtsamal viisil leida.
1. Leidke veerust viimane tühi rida, kasutades valikut Range.End
Vaatame kõigepealt koodi. Ma selgitan seda kirja.

Sub getLastUsedRow () Dim last_row As Integer last_row = Lahtrid (Rows.Count, 1). End (xlUp). Rida 'See rida saab viimase rea silumise. Prindi last_row End Sub

Ülaltoodud alam leiab veeru 1 viimase rea.

Kuidas see töötab?
See on sama, kui minna lehe viimasele reale ja seejärel vajutada kiirklahvi CTRL+UP.
Lahtrid (ridade arv, 1): See osa valib veeru A lahtri. Ridade arv annab 1048576, mis on tavaliselt Exceli lehe viimane rida.

Lahtrid (1048576, 1)

.Lõpp (xlUp): Lõpp on vahemikuklassi meetod, mida kasutatakse lehtedel otsteni navigeerimiseks. xlUp on muutuja, mis ütleb suuna. See käsk valib koos viimase rea andmetega.

Lahtrid (ridade arv, 1). Lõpp (xlUp)

.Rida: rida tagastab valitud lahtri rea numbri. Seega saame viimase lahtri rea numbri veerus A olevate andmetega. Näites on see 8.

Vaadake, kui lihtne on leida viimaseid andmeid sisaldavaid ridu. See meetod valib andmete viimase rea, olenemata tühikutest enne seda. Näete seda pildil, et andmeid on ainult lahtris A8. Kõik eelnevad lahtrid on tühjad, välja arvatud A4.

Valige veerus viimane andmetega lahter
Kui soovite valida veeru A viimase lahtri, eemaldage otsast ".row" ja kirjutage .select.

Sub getLastUsedRow () Lahtrid (Rows.Count, 1). End (xlUp). Valige 'See rida valib veeru viimase lahtri End Sub

Käsk „.Select” valib aktiivse lahtri.
Hankige viimase lahtri aadressi veerg
Kui soovite saada veeru A viimase lahtri aadressi, eemaldage otsast lihtsalt ".row" ja kirjutage .address.

Sub getLastUsedRow () add = Lahtrid (Rows.Count, 1). End (xlUp) .address 'See rida valib veeru viimase lahtri Debug.print add End Sub

Ulatus.Aadress funktsioon tagastab aktiivse raku aadressi.
Leidke realt viimane tühi veerg
See on peaaegu sama kui veeru viimase tühja lahtri leidmine. Siin saame viimase rea lahtri veeru numbri rea 4 andmetega.

Sub getLastUsedCol () Dim last_col As Integer last_col = Lahtrid (4, Columns.Count) .End (xlToLeft). Veerg 'See rida saab viimase veeru Silumine.Print last_col End Sub


Pildilt näete, et see tagastab rea 4 viimase tühja lahtri veerunumbri. Mis on 4.
Kuidas see töötab?

Noh, mehaanika on sama, mis veerus andmetega viimase lahtri leidmine. Kasutasime just veergudega seotud märksõnu.
Valige Excelis VBA abil andmekogum
Nüüd teame, kuidas saada VBA abil Exceli viimane rida ja viimane veerg. Seda kasutades saame hõlpsalt valida tabeli või andmestiku. Pärast andmekogumi või tabeli valimist saame nendega teha mitmeid toiminguid, näiteks kopeerida-kleepida, vormindada, kustutada jne.
Siin on meil andmekogum. Need andmed võivad laieneda allapoole. Fikseeritakse ainult lähterakk, mis on B4. Viimane rida ja veerg ei ole fikseeritud. Peame vba abil dünaamiliselt valima kogu tabeli.

VBA -kood tühjade lahtritega tabeli valimiseks

Sub select_table () Dim last_row, last_col As Long 'Hangi viimane rida last_row = Lahtrid (Rows.Count, 2). End (xlUp). Rida' Hangi viimane veerg last_col = Lahtrid (4, Columns.Count). End (xlToLeft) .Column 'Valige kogu tabelivahemik (lahtrid (4, 2), lahtrid (viimane_rida, viimane_kool)). Valige Lõpeta alam

Selle käivitamisel valitakse kogu tabel sekundi murdosa jooksul. Saate lisada uusi ridu ja veerge. See valib alati kõik andmed.

Selle meetodi eelised:

  1. See on lihtne. Me kirjutasime sõna otseses mõttes ainult ühe rea, et saada viimane rida andmetega. See teeb selle lihtsaks.
  2. Kiire. Vähem koodirida, vähem aega.
  3. Lihtne arusaada.
  4. Töötab suurepäraselt, kui teil on kohmakas andmetabel, millel on kindel lähtepunkt.

Vahemiku miinused. Lõppmeetod:

  1. Lähtekoht peab olema teada.
  2. Saate hankida ainult teadaoleva rea ​​või veeru viimast tühja lahtrit. Kui teie lähtepunkt pole fikseeritud, on see kasutu. Mis juhtub väga harva.

2. Leidke viimane rida funktsiooni Find () abil
Vaatame kõigepealt koodi.

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


Nagu näete pildil, tagastab see kood viimase rea täpselt.
Kuidas see töötab?
Siin kasutame leidmisfunktsiooni, et leida mis tahes lahtrit, mis sisaldab mis tahes asju, kasutades metamärgioperaatorit "*". Tärni kasutatakse millegi, teksti või numbri leidmiseks.

Seadsime otsingujärjekorra ridade järgi (otsingukorraldus: = xlByRows). Samuti ütleme Excel vba -le otsingu suuna kui xlPrevious (searchdirection: = xlPrevious). See muudab otsimisfunktsiooni lehe otsast rea otsimiseks otsimiseks. Kui ta leiab lahtri, mis sisaldab midagi, peatub see. Kasutame meetodit Range.Row, et tuua viimane rida aktiivsest lahtrist.

Funktsiooni Find eelised viimase lahtri saamiseks andmetega:

  1. Sa ei pea teadma lähtepunkti. See viib teid lihtsalt viimasele reale.
  2. See võib olla üldine ja seda saab kasutada mis tahes lehe andmetega viimase lahtri leidmiseks ilma muudatusteta.
  3. Seda saab kasutada lehelt konkreetse teksti või numbri viimase eksemplari leidmiseks.

Funktsiooni Find () miinused:

  1. See on kole. Liiga palju argumente.
  2. See on aeglane.
  3. Ei saa kasutada viimase tühja veeru saamiseks. Tehniliselt saate. Aga see läheb liiga aeglaseks.

3. Funktsiooni SpecialCells kasutamine viimase rea saamiseks
Funktsioon SpecialCells koos argumendiga xlCellTypeLastCell tagastab viimati kasutatud lahtri. Vaatame kõigepealt koodi

Sub spl_last_row_ () lastRow = ActiveSheet.Cells.SpecialCells (xlCellTypeLastCell). Rida silumine. Prindi viimane


Kui käivitate ülaltoodud koodi, saate viimati kasutatud lahtri rea numbri.

Kuidas see töötab?

See on Excelis otsetee CTRL+End vba ekvivalent. See valib viimati kasutatud lahtri. Kui salvestate makro, vajutades samal ajal klahve CTRL+End, saate selle koodi.

Alammakro1 () "Makro1 makro" ActiveCell. SpecialCells (xlLastCell). Valige Lõpualam 

Kasutasime seda just viimati kasutatud lahtri reanumbri saamiseks.

Märge: Nagu ma eespool ütlesin, tagastab see meetod viimati kasutatud lahtri, mitte viimase lahtri koos andmetega. Kui kustutate viimases lahtris olevad andmed, tagastab ülaltoodud vba -kood ikkagi sama lahtrite viite, kuna see oli „viimati kasutatud lahter”. Selle meetodi abil andmetega viimase lahtri saamiseks peate esmalt dokumendi salvestama.

Kustutage lehed ilma kinnitusviipadeta, kasutades Microsoft Excelis VBA -d

Uue töövihiku lisamine ja salvestamine Microsoft Excel 2016 VBA abil

Kuva teade Exceli VBA olekuribal

Lülitage hoiatussõnumid välja Microsoft Excel 2016 VBA abil

Populaarsed artiklid:

Funktsioon VLOOKUP Excelis

COUNTIF Excelis 2016

Funktsiooni SUMIF kasutamine Excelis

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave