Posledný riadok Excel VBA
Nájdenie posledného riadku v stĺpci je dôležitým aspektom pri písaní makier a ich dynamizácii. Pretože by sme radšej aktualizovali rozsahy buniek občas, keď pracujeme s odkazmi na bunky Excel. Ako kóder / vývojár by ste vždy radšej písali dynamický kód, ktorý je možné použiť na akékoľvek údaje a postačuje vašim požiadavkám. Okrem toho by bolo vždy skvelé, keby ste mali o svojich údajoch posledný riadok, aby ste mohli dynamicky zmeniť kód podľa svojich požiadaviek.
Poukážem len na jeden príklad, ktorý zdôrazňuje význam dynamického kódu.
Predpokladajme, že mám uvedené údaje so zamestnancom a jeho platy.
A pozrite sa na nasledujúci kód:
kód:
Sub príklad1 () Rozsah ("D2"). Hodnota = WorksheetFunction.Sum (Rozsah ("B2: B11")) End Sub
Tento kód tu tlačí súčet platov všetkých zamestnancov (bunka B2: B11 ) v bunke D2 . Pozri obrázok nižšie:
Čo teraz, ak do týchto údajov pridám niektoré bunky a znova spustím tento kód?
Logicky povedané, vyššie uvedený kód nebude zhrnúť všetkých 14 riadkov zo stĺpca B. Dôvodom toho istého rozsahu je rozsah, ktorý sme aktualizovali v rámci WorksheetFunction (čo je B2: B11). Z tohto dôvodu je pre nás dôležitejší dynamický kód, ktorý môže zohľadniť posledný vyplnený riadok.
V tomto článku predstavím niektoré metódy, ktoré môžu byť užitočné pri hľadaní posledného riadku pre danú množinu údajov pomocou kódu VBA.
Ako nájsť posledný použitý riadok v stĺpci pomocou VBA?
Nižšie sú uvedené rôzne príklady s rôznymi metódami na nájdenie posledného použitého riadku stĺpca v programe Excel pomocou kódu VBA.
Túto šablónu Excel VBA Last Row Excel si môžete stiahnuť tu - Šablónu Excel VBA Last Row ExcelPríklad č. 1 - Použitie metódy Range.End ()
Táto metóda je rovnaká ako pri použití Ctrl + šípka nadol v Exceli na prechod na posledný neprázdny riadok. Na podobných riadkoch postupujte podľa krokov uvedených nižšie a vytvorte kód vo VBA, aby ste dosiahli posledný neprázdny riadok stĺpca v programe Excel.
Krok 1: Definujte premennú, ktorá môže mať hodnotu pre posledný neprázdny riadok stĺpca Excel.
kód:
Čiastkový príklad2 () Dim Last_Row As Long End Sub
Premenná Last_Row je tu definovaná ako LONG, aby sa zabezpečilo, že môže mať ľubovoľný počet argumentov.
Krok 2: Pomocou definovanej premennej držte hodnotu posledného neprázdneho riadku.
kód:
Čiastkový príklad 2 () Dim Last_Row Tak Long Last_Row = End Sub
Krok 3: Zadajte kód začínajúci na CELLS (Rows.Count pred Last_Row = .
kód:
Čiastkový príklad2 () Dim Last_Row Tak dlho Last_Row = Bunky (Rows.Count End Sub
Krok 4: Zmienka 1 za čiarkou v uvedenom kóde. Číselná hodnota 1 sú synonymá do prvého stĺpca v excelovom hárku.
kód:
Čiastkový príklad2 () Dim Last_Row Tak dlho Last_Row = Bunky (Rows.Count, 1) End Sub
Tento kód umožňuje VBA zistiť celkový počet (prázdnych + neprázdnych) riadkov prítomných v prvom stĺpci excelového listu. To znamená, že tento kód umožňuje systému prejsť na poslednú bunku programu Excel.
Čo ak ste v poslednej bunke Excelu a chcete ísť na posledný neprázdny riadok? Budete používať Ctrl + šípku hore, však?
Rovnaká logika, ktorú použijeme v ďalšom riadku kódu.
Krok 5: Pomocou kombinácie klávesov Koniec a xlUp prejdite na posledný neprázdny riadok programu Excel.
kód:
Čiastkový príklad2 () Dim Last_Row Tak Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) End Sub
Tým sa dostanete na posledný neprázdny riadok v Exceli. Požadovali ste však rovnaké číslo riadku.
Krok 6: Použite ROW na získanie čísla riadku posledného neprázdneho riadku.
kód:
Čiastkový príklad2 () Dim Last_Row Tak Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub Sub
Krok 7: Pomocou MsgBoxu zobrazte hodnotu Last_Row, ktorá obsahuje posledné neprázdne číslo riadka.
kód:
Čiastkový príklad2 () Dim Last_Row Tak dlho Last_Row = Bunky (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub Sub
Krok 8: Spustite kód pomocou tlačidla Spustiť alebo stlačením klávesy F5 a pozrite si výstup.
Výkon:
Krok 9: Teraz odstránime jeden riadok a uvidíme, či kód dá presný výsledok alebo nie. Pomôže nám to skontrolovať dynamiku nášho kódu.
Príklad č. 2 - Použitie Range a SpecialCells
Môžeme tiež použiť vlastnosť Range a SepcialCells VBA na získanie posledného neprázdneho riadku tabuľky Excel.
Podľa nasledujúceho postupu získajte posledný neprázdny riadok v programe Excel pomocou kódu VBA:
Krok 1: Definujte premenné znova ako dlhé.
kód:
Čiastkový príklad 3 () Dim Last_Row As Long End Sub
Krok 2: Začnite ukladať hodnotu do premennej Last_Row pomocou operátora priradenia.
kód:
Čiastkový príklad 3 () Dim Last_Row Tak Long Last_Row = End Sub
Krok 3: Začnite písať rozsah („A: A“) .
kód:
Čiastkový príklad 3 () Dim Last_Row Tak Long Last_Row = Range ("A: A") End Sub
Krok 4: Pomocou funkcie SpecialCells vyhľadajte poslednú neprázdnu bunku.
kód:
Čiastkový príklad 3 () Dim Last_Row Tak Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub
Táto funkcia SpecialCells vyberie poslednú bunku z vášho Excelu, keď je napísaná v zátvorkách ( xlCellTypeLastCell umožňuje vybrať poslednú neprázdnu bunku z vášho Excelu).
Krok 5: Teraz pomocou ROW získajte posledný riadok z vášho Excelu.
kód:
Čiastkový príklad 3 () Dim Last_Row Tak Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub Sub
Toto vám vráti posledný neprázdny riadok z vášho Excelu.
Krok 6: Teraz priraďte túto hodnotu Last_Row MsgBoxu, aby sme videli posledné neprázdne číslo riadku v okne správy.
kód:
Čiastkový príklad 3 () Dim Last_Row Tak Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub Sub
Krok 7: Spustite kód stlačením klávesy F5 alebo Spustiť umiestnenou v ľavom hornom rohu.
Výkon:
Môžete vidieť, že posledné neprázdne číslo bunky sa objaví v MsgBoxe s odkazom na stĺpec A. Pretože sme pri definovaní premenného vzorca uviedli stĺpec A v rámci funkcie Range.
Krok 8: Ak odstránime riadok a môžeme spustiť tento vzorec. Poďme sa pozrieť čo sa stalo.
Môžete vidieť, že systém stále pridelil počet riadkov ako 14. Aj keď som odstránil riadok a skutočný počet riadkov je 13, systém počet riadkov nezachytal presne. Aby systém zachytil skutočný počet riadkov, musíte list uložiť a znova spustiť kód.
Na tejto snímke obrazovky sa teraz zobrazuje skutočný počet riadkov.
Príklad č. 3 - Použitie Range.Find ()
Podľa nasledujúceho postupu získajte posledný neprázdny riadok v programe Excel pomocou kódu VBA:
Krok 1: Definujte premennú tak dlho.
kód:
Čiastkový príklad 4 () Dim Last_Row As Long End Sub
Krok 2: Teraz použite nasledujúci kód na zobrazenie posledného neprázdneho riadku.
kód:
Čiastkový príklad4 () Dim Last_Row tak dlho Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub
Funkcia FIND tu hľadá prvú bunku, ktorá nie je prázdna. Hviezdička (*) je zástupný znak, ktorý pomáha pri ich vyhľadávaní.
Počnúc bunkou A1 sa systém vráti späť na poslednú bunku z hárka a vyhľadáva smerom dozadu (xlPrevious). Pohybuje sa sprava doľava (xlByRows) a slučky hore v tom istom hárku cez všetky riadky na podobných riadkoch, až kým nenájde neprázdny riadok (pozri .ROW na konci kódu).
Krok 3: Použite MsgBox na uloženie hodnoty posledného neprázdneho riadku a na zobrazenie ako rozbaľovacieho políčka.
kód:
Čiastkový príklad4 () Dim Last_Row tak dlho Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub Sub
Krok 4: Spustite kód a pozrite sa na výstup ako kontextové pole obsahujúce posledné neprázdne číslo riadka.
Výkon:
Čo je potrebné pamätať
- Koniec (príklad 1) sa môže použiť na nájdenie prvej prázdnej bunky / riadku alebo poslednej neprázdnej bunky / riadku v danom stĺpci pomocou kódu VBA.
- Koniec väčšinou pracuje na jednom stĺpci. Ak máte údaje v rozsahoch, bolo by ťažké určiť, ktorý stĺpec by sa mal použiť na zistenie posledného neprázdneho riadku.
- Funkcia Find (Example3) pracuje na celom rozsahu od začiatku a pomocou kódu VBA zistí poslednú neprázdnu bunku / riadok v danom stĺpci. Môže sa tiež použiť na zistenie posledného neprázdneho stĺpca.
Odporúčané články
Toto je sprievodca posledným riadkom VBA. Tu diskutujeme o tom, ako nájsť posledný použitý riadok v danom stĺpci, spolu s niekoľkými praktickými príkladmi a šablónou programu Excel na stiahnutie. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Ako používať vkladací stĺpec VBA?
- Ako vybrať riadky a stĺpce programu Excel?
- Prehľad buniek VBA Range
- Ako pridať bunky v Exceli?