3 najlepšie spôsoby, ako nájsť posledný neprázdny riadok a stĺpček pomocou jazyka VBA

Obsah

Nájdenie naposledy použitého riadka a stĺpca je jednou zo základných a dôležitých úloh akejkoľvek automatizácie v programe Excel pomocou programu VBA. Na automatické zostavovanie hárkov, zošitov a usporiadanie údajov musíte nájsť limit údajov na listoch.

Tento článok vysvetlí všetky spôsoby hľadania posledného riadka a stĺpca v programe Excel najľahšími spôsobmi.
1. Nájdite posledný neprázdny riadok v stĺpci pomocou Range.End
Pozrime sa najskôr na kód. Vysvetlím to listom.

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

Vyššie uvedený podbod nájde posledný riadok v stĺpci 1.

Ako to funguje?
Je to ako prejsť na posledný riadok v hárku a potom stlačiť klávesovú skratku CTRL+UP.
Bunky (riadky. Počet, 1): Táto časť vyberie bunku v stĺpci A. Riadky. Počet dáva 1048576, čo je zvyčajne posledný riadok v hárku programu Excel.

Bunky (1048576, 1)

.Koniec (xlUp): End je metóda triedy rozsahu, ktorá sa používa na navigáciu v hárkoch na konce. xlUp je premenná, ktorá udáva smer. Tento príkaz spoločne vyberie posledný riadok s údajmi.

Bunky (riadky. Počet, 1). Koniec (xlUp)

.Riadok: riadok vráti číslo riadku vybratej bunky. Preto dostaneme číslo riadku poslednej bunky s údajmi v stĺpci A. V príklade je to 8.

Pozrite sa, aké ľahké je nájsť posledné riadky s údajmi. Táto metóda vyberie posledný riadok v údajoch bez ohľadu na prázdne bunky pred ním. Na obrázku môžete vidieť, že údaje má iba bunka A8. Všetky predchádzajúce bunky sú prázdne okrem formátu A4.

Vyberte poslednú bunku s údajmi v stĺpci
Ak chcete vybrať poslednú bunku v stĺpci A, stačí odstrániť „.row“ z konca a napísať .select.

Sub bunky getLastUsedRow () (riadky. Počet, 1). Koniec (xlUp). Vyberte možnosť „Tento riadok vyberie poslednú bunku v stĺpci Koniec sub“

Príkaz „.Vybrať“ vyberie aktívnu bunku.
Získať stĺpec s adresou poslednej bunky
Ak chcete získať adresu poslednej bunky v stĺpci A, jednoducho odstráňte „.row“ z konca a napíšte .address.

Sub getLastUsedRow () add = Cells (Rows.Count, 1) .End (xlUp) .address ‘Tento riadok vyberie poslednú bunku v stĺpci Debug.print add End Sub

Rozsah.Adresa funkcia vráti adresu aktívnej bunky.
Nájdite posledný neprázdny stĺpec v rade
Je to takmer rovnaké ako nájdenie poslednej prázdnej bunky v stĺpci. Tu dostávame číslo stĺpca poslednej bunky s údajmi v riadku 4.

Sub getLastUsedCol () Dim last_col As Integer last_col = Cells (4, Columns.Count) .End (xlToLeft) .Column ‘This line gets the last column Debug.Print last_col End Sub


Na obrázku vidíte, že vracia číslo posledného neprázdneho stĺpca bunky v riadku 4. Čo je 4.
Ako to funguje?

Mechanika je rovnaká ako nájdenie poslednej bunky s údajmi v stĺpci. Práve sme použili kľúčové slová súvisiace so stĺpcami.
Vyberte množinu údajov v programe Excel pomocou VBA
Teraz vieme, ako získať posledný riadok a posledný stĺpec programu Excel pomocou VBA. Vďaka tomu môžeme ľahko vybrať tabuľku alebo množinu údajov. Po výbere množiny údajov alebo tabuľky s nimi môžeme vykonať niekoľko operácií, ako je napríklad kopírovanie, vkladanie, formátovanie, odstraňovanie atď.
Tu máme súbor údajov. Tieto údaje sa môžu rozšíriť smerom nadol. Pevná je iba počiatočná bunka, ktorou je B4. Posledný riadok a stĺpec nie sú pevné. Potrebujeme dynamicky vybrať celú tabuľku pomocou vba.

Kód VBA na výber tabuľky s prázdnymi bunkami

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) .Stĺpec 'Vybrať celý rozsah tabuľky (bunky (4, 2), bunky (posledná_rowka, posledná_kolka)). Vyberte koncovú podkapitolu

Keď to spustíte, v zlomku sekundy sa vyberie celá tabuľka. Môžete pridať nové riadky a stĺpce. Vždy vyberie všetky údaje.

Výhody tejto metódy:

  1. Je to ľahké. Doslova sme napísali iba jeden riadok, aby sme získali posledný riadok s údajmi. Vďaka tomu je to jednoduché.
  2. Rýchlo. Menej riadku kódu, menej času.
  3. Ľahko pochopiteľné.
  4. Funguje to perfektne, ak máte nemotornú tabuľku údajov s pevným počiatočným bodom.

Nevýhody rozsahu. Koncová metóda:

  1. Východiskový bod musí byť známy.
  2. Môžete získať iba poslednú prázdnu bunku v známom riadku alebo stĺpci. Keď váš počiatočný bod nie je pevný, bude zbytočný. Čo je veľmi málo pravdepodobné.

2. Nájdite posledný riadok pomocou funkcie Find ()
Pozrime sa najskôr na kód.

 Sub last_row () lastRow = ActiveSheet.Cells.Find ("*", poradie vyhľadávania: = xlByRows, smer hľadania: = xlPrevious). Riadok Debug.Print lastRow Koniec Sub 


Ako vidíte na obrázku, tento kód vráti posledný riadok presne.
Ako to funguje?
Tu používame funkciu find na nájdenie akejkoľvek bunky, ktorá obsahuje čokoľvek, pomocou operátora zástupných znakov „*“. Hviezdička slúži na nájdenie čohokoľvek, textu alebo čísla.

Poradie vyhľadávania nastavujeme podľa riadkov (poradie vyhľadávania: = xlByRows). Excelu vba tiež povieme smer vyhľadávania ako xlPrevious (smer hľadania: = xlPrevious). Vďaka nemu je funkcia hľadania riadková od konca listu. Akonáhle nájde bunku, ktorá obsahuje čokoľvek, zastaví sa. Na načítanie posledného riadka z aktívnej bunky používame metódu Range.Row.

Výhody funkcie Hľadať na získanie poslednej bunky s údajmi:

  1. Nemusíte poznať východiskový bod. Dostanete sa len k poslednému radu.
  2. Môže byť všeobecný a môže byť použitý na nájdenie poslednej bunky s údajmi v ľubovoľnom hárku bez akýchkoľvek zmien.
  3. Dá sa použiť na nájdenie poslednej inštancie konkrétneho textu alebo čísla na hárku.

Nevýhody funkcie Find ():

  1. Je to škaredé Príliš veľa argumentov.
  2. Ide to pomaly
  3. Nedá sa použiť na získanie posledného neprázdneho stĺpca. Technicky môžete. Ale ide to príliš pomaly.

3. Použitie funkcie SpecialCells na získanie posledného radu
Funkcia SpecialCells s argumentom xlCellTypeLastCell vracia poslednú použitú bunku. Pozrime sa najskôr na kód

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


Ak spustíte vyššie uvedený kód, dostanete číslo riadku naposledy použitej bunky.

Ako to funguje?

Toto je ekvivalent vba skratky CTRL+End v programe Excel. Vyberie poslednú použitú bunku. Ak zaznamenáte makro a súčasne stlačíte kombináciu klávesov CTRL+End, získate tento kód.

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

Práve sme ho použili na získanie čísla posledného použitého riadka bunky.

Poznámka: Ako som už povedal vyššie, táto metóda vráti poslednú použitú bunku, nie poslednú bunku s údajmi. Ak vymažete údaje v poslednej bunke, nad kódom VBA bude stále vracať rovnaký odkaz na bunky, pretože to bola „posledná použitá bunka“. Ak chcete získať poslednú bunku s údajmi pomocou tejto metódy, musíte dokument najskôr uložiť.

Odstráňte hárky bez výziev na potvrdenie pomocou VBA v programe Microsoft Excel

Pridajte a uložte nový zošit pomocou jazyka VBA v programe Microsoft Excel 2016

Zobrazte správu na stavovom riadku programu Excel VBA

Vypnite varovné správy pomocou VBA v programe Microsoft Excel 2016

Populárne články:

Funkcia VLOOKUP v programe Excel

COUNTIF v Exceli 2016

Ako používať funkciu SUMIF v programe Excel

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave