VBA posledný riadok Ako nájsť posledný použitý riadok v programe Excel pomocou kódu VBA?

Obsah:

Anonim

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 Excel

Prí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 -

  1. Ako používať vkladací stĺpec VBA?
  2. Ako vybrať riadky a stĺpce programu Excel?
  3. Prehľad buniek VBA Range
  4. Ako pridať bunky v Exceli?