VBA utolsó sor - Hogyan lehet megtalálni az utoljára használt sort az Excel programban a VBA kód használatával?

Tartalomjegyzék:

Anonim

Excel VBA utolsó sor

Az oszlop utolsó sorának megtalálása fontos szempont a makrók megírásában és azok dinamikusvá tételében. Mivel nem szeretnénk inkább a cellatartományt időről időre frissíteni, amikor az Excel cellareferenciákkal dolgozunk. Kódolóként / fejlesztőként mindig szívesebben dinamikus kódot írna, amely bármilyen adatra felhasználható, és elegendő az Ön igényeinek. Sőt, mindig nagyszerű lenne, ha az utolsó sor ismert az adataival, így dinamikusan megváltoztathatja a kódot a követelményei szerint.

Csak egy példát említek, amely megismétli a dinamikus kód fontosságát.

Tegyük fel, hogy az alábbiakban megadott adatokkal rendelkezem a munkavállalókkal és a fizetésekkel kapcsolatban.

És nézd meg az alább megadott kódot:

Kód:

 1. alpélda () tartomány ("D2"). Érték = WorksheetFunction.Sum (Range ("B2: B11")) Sub Sub vége 

Ez a kód itt kinyomtatja a D2 cellában az összes alkalmazott ( B2: B11 cella) fizetéseinek összegét. Lásd az alábbi képet:

Mi van, ha hozzáadok néhány cellát ezekhez az adatokhoz, és újra futtatom ezt a kódot?

Logikai szempontból a fenti kód nem összegzi a B oszlop mind a 14 sorát. Ugyanaz a tartomány, amelyet a WorksheetFunction alatt frissítettünk (amely B2: B11). Ez az oka annak, hogy egy dinamikus kód, amely figyelembe veszi az utolsó kitöltött sort, fontosabb számunkra.

Ebben a cikkben néhány módszert mutatok be, amelyek hasznosak lehetnek az adott adatkészlet utolsó sorának a VBA-kód segítségével történő megállapításában.

Hogyan lehet megtalálni az utoljára használt sort az oszlopban a VBA használatával?

Az alábbiakban bemutatjuk a különféle módszereket tartalmazó példákat, amelyek segítségével megtalálhatjuk az Excel utolsó oszlopsorát a VBA-kód használatával.

Itt töltheti le a VBA Utolsó sor Excel sablonját - VBA Utolsó sor Excel sablon

1. példa - A Range.End () módszer használata

Nos, ez a módszer ugyanolyan, mint az Ctrl + Lefelé mutató nyíl használata az Excel alkalmazásban az utolsó nem üres sorra lépéshez. Hasonló sorokon kövesse az alábbi lépéseket a kód létrehozásához a VBA-ban, hogy elérje az oszlop utolsó nem üres oszlopát az Excelben.

1. lépés: Határozzon meg egy olyan változót, amely értéket vehet fel az excel oszlop utolsó nem üres sorához.

Kód:

 2. alpélda () Eltávolítja az utolsó_sort hosszú végként 

Itt a Last_Row változó LONG-ban van meghatározva, csak hogy megbizonyosodjon arról, hogy tetszőleges számú argumentumot képes-e felvenni.

2. lépés: A meghatározott változóval tartsa az utolsó nem üres sor értékét.

Kód:

 2. alpélda () Eltávolítja az utolsó_részt, amíg az utolsó_ sor = befejezi a részét 

3. lépés: Írja be a CELLS- vel kezdődő kódot (Rows.Count a Last_Row = elé.

Kód:

 2. Alpélda () Eltávolítani az utolsó_sort addig, amíg az utolsó_sor = cella (a sorok száma 

4. lépés: Említse meg az 1. vesszőt a fent említett kódban. Az 1-es számérték az Excel első oszlopának szinonimája.

Kód:

 2. alpélda () Eltávolítja az utolsó_sort, amíg az utolsó_sor = cella (sorok száma, 1) 

Ez a kód lehetővé teszi a VBA számára, hogy megtudja az (üres + nem üres) sorok számát az Excel munkalap első oszlopában. Ez azt jelenti, hogy ez a kód lehetővé teszi a rendszer számára, hogy az Excel utolsó cellájába menjen.

Mi van, ha az excel utolsó cellájában vagy, és fel akar lépni az utolsó nem üres sorba? A Ctrl + Fel nyílot fogja használni, igaz?

Ugyanezt a logikát fogjuk használni a kód következő sorában.

5. lépés: A Vége gomb és az xlUp kombinációjával lépjen az Excel utolsó nem üres sorába.

Kód:

 2. alpélda () Eltávolítja az utolsó_sort, amíg az utolsó_sor = cella (sorok száma, 1) .End (xlUp) 

Ezzel eljuthat az excel utolsó nem üres sorához. Ugyanakkor ugyanazt a sorszámot akartad.

6. lépés: A ROW gombbal kaphatja meg az utolsó nem üres sor sorszámát.

Kód:

 2. alpélda () Eltávolítja az utolsó_sort, amíg hosszú az utolsó_sor = cella (sorok száma, 1) .End (xlUp). 

7. lépés: Mutassa be a Last_Row értékét, amely tartalmazza az utolsó nem üres sor számát az MsgBox segítségével.

Kód:

 2. alpélda () Eltávolítja az utolsó_sort, amíg hosszú az utolsó_sor = Cella (sorok száma, 1) .End (xlUp) .Sor MsgBox utolsó_sor végének alsó része 

8. lépés: Futtassa a kódot a Futtatás gomb segítségével vagy az F5 billentyű lenyomásával, és nézze meg a kimenetet.

Kimenet:

9. lépés: Most töröljünk egy sort, és nézzük meg, hogy a kód pontos eredményt ad-e vagy sem. Segít ellenőrizni a kód dinamikáját.

2. példa - Range és SpecialCells használata

Használhatjuk a VBA Range és SepcialCells tulajdonságát is az Excel nem utolsó üres sorának eléréséhez.

Kövesse az alábbi lépéseket az utolsó nem üres sor eljuttatásához az Excel alkalmazásban VBA-kóddal:

1. lépés: Adjon meg egy változót újra hosszúnak.

Kód:

 3. alpélda () Eltávolítja az utolsó_sort hosszú végként 

2. lépés: A hozzárendelés-kezelővel kezdje el tárolni az értéket a Last_Row változóhoz.

Kód:

 3. alpélda () Eltávolítja az utolsó_részt, amíg az utolsó_ sor = befejezi a részét 

3. lépés: Indítsa el a gépelési tartományt („A: A”) .

Kód:

 3. alpélda () Halványítsa el a legutóbbi hosszúságot, amíg az utolsó_ sor = tartomány ("A: A") Vége az al 

4. lépés: A SpecialCells funkció segítségével keresse meg az utolsó nem üres cellát.

Kód:

 Sub példa3 () Eltávolítani Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Ez a funkció a SpecialCells az utolsó cellát választja ki az Excelből, amint a zárójelek vannak írva (az xlCellTypeLastCell lehetővé teszi az utolsó nem üres cella kiválasztását az Excel lapjából ).

5. lépés: Most használja a ROW gombot az utolsó sor kinyeréséhez az Excel lapjából.

Kód:

 Sub példa3 () Eltávolítani Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Ez visszatér az Excel legutóbbi nem üres sorához.

6. lépés: Most rendelje hozzá a Last_Row ezt az értéket az MsgBox-hoz, hogy láthassuk az üzenet mezőben az utolsó nem üres sor számát.

Kód:

 3. alpélda () Eltávolítja az utolsó_részt, amíg hosszú az utolsó_sor = tartomány ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

7. lépés: Futtassa a kódot a bal sarok tetején található F5 vagy a Futtatás gomb megnyomásával.

Kimenet:

Láthatja, hogy az utolsó nem üres cellaszám kiugrik az MsgBoxon keresztül az A oszlopra hivatkozva. Mivel az A oszlopot a Tartomány funkció alatt említjük, a változóképlet meghatározásakor.

8. lépés: Ha törölünk egy sort, és futtathatjuk ezt a képletet. Nézzük mi történik.

Láthatjuk, hogy a rendszer továbbra is 14-es sorszámot adott. Noha töröltem egy sort, és a tényleges sorszám 13, a rendszer nem rögzítette pontosan a sorok számát. Ahhoz, hogy a rendszer rögzítse a tényleges sorszámot, el kell mentenie a munkalapot, és újra futtatnia a kódot.

Láthatja a tényleges sorok számát a képernyőképen.

3. példa - A Range.Find () használata

Kövesse az alábbi lépéseket az utolsó nem üres sor eljuttatásához az Excel alkalmazásban VBA-kóddal:

1. lépés: Adjon meg egy változót, amennyire hosszú.

Kód:

 4. alpélda () Eltávolítja az utolsó_sort hosszú végként 

2. lépés: Most használja a következő kódot az utolsó nem üres sor megtekintéséhez.

Kód:

 4. alpélda () Eltávolítja az utolsó_sort, amíg az utolsó_sor / cellák.Keresés (Mi: = "*", _ után: = Tartomány ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevable, _ MatchCase: = Hamis) .Row End Sub 

A FIND funkció itt egy első nem üres cellát keres. A csillag (*) helyettesítő karakter operátor, amely segít azonosítani ezt.

Az A1 cellától kezdve a rendszer visszatér a lap utolsó cellájához, és hátrafelé keres (xlPrevable). Jobbról balra mozog (xlByRows), és ugyanazon a lapon hurkol fel a hasonló sorok összes során keresztül, amíg nem egy üres sort talál (lásd a .ROW kódot a végén).

3. lépés: Az MsgBox segítségével tárolja az utolsó nem üres sor értékét, és előugró ablakként jelenítse meg.

Kód:

 4. alpélda () Eltávolítja az utolsó_sort, amíg az utolsó_sor / cellák.Keresés (Mi: = "*", _ után: = Tartomány ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevable, _ MatchCase: = Hamis) .Row MsgBox Last_Row End Sub 

4. lépés: Futtassa a kódot, és tekintse meg a kimenetet előugró ablakként, amely tartalmazza az utolsó nem üres sor számot.

Kimenet:

Dolgok, amikre emlékezni kell

  • Az End (1. példa) felhasználható az adott oszlop első üres cellájának / sorának vagy utolsó nem üres cellájának / sorának a meghatározására VBA-kóddal.
  • A vége legtöbbször egyetlen oszlopban működik. Ha tartományokban vannak adatok, nehéz eldönteni, melyik oszlopot kell használni az utolsó nem üres sor megismeréséhez.
  • A Find (3. példa) a kiindulási ponttól kezdve egy teljes tartományon működik, és a VBA kód segítségével megtudja az adott oszlop utolsó nem üres celláját / sorát. Arra is fel lehet használni, hogy megtudja az utolsó nem üres oszlopot.

Ajánlott cikkek

Ez egy útmutató a VBA utolsó sorához. Itt tárgyaljuk, hogyan lehet megtalálni az adott oszlopban az utoljára használt sort, néhány gyakorlati példával és letölthető Excel sablonnal együtt. A következő cikkeket is megnézheti további információkért -

  1. Hogyan kell használni a VBA beszúrás oszlopot?
  2. Hogyan válasszuk ki az Excel sorokat és oszlopokat?
  3. A VBA tartományú cellák áttekintése
  4. Hogyan adjunk hozzá cellákat Excelben?