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 sablon1. 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 -
- Hogyan kell használni a VBA beszúrás oszlopot?
- Hogyan válasszuk ki az Excel sorokat és oszlopokat?
- A VBA tartományú cellák áttekintése
- Hogyan adjunk hozzá cellákat Excelben?