Excel VBA Last Row
Găsirea ultimului rând într-o coloană este un aspect important în scrierea macro-urilor și în realizarea dinamicii. Cum nu am prefera să actualizăm intervalele de celule din când în când când lucrăm cu referințe de celule Excel. Fiind un codificator / dezvoltator, preferați întotdeauna să scrieți un cod dinamic care poate fi utilizat pe orice date și care să satisfacă cerințele dvs. Mai mult, ar fi întotdeauna excelent dacă aveți ultimul rând cunoscut de datele dvs., astfel încât să puteți schimba dinamic codul conform cerinței dvs.
Voi sublinia doar un exemplu care iterează importanța codului dinamic.
Să presupunem că am o informație prezentată mai jos cu angajatul și salariile acestora.
Și uitați-vă la codul dat mai jos:
Cod:
Sub Exemplu1 () Interval ("D2"). Valoare = WorksheetFunction.Sum (Range ("B2: B11")) End Sub
Aici, acest cod tipărește suma salariilor pentru toți angajații (celula B2: B11 ) din celula D2 . Vezi imaginea de mai jos:
Acum, ce se întâmplă dacă adaug câteva celule în aceste date și rulez din nou acest cod?
Logic vorbind, codul de mai sus nu va însuma toate cele 14 rânduri din coloana B. Motivul pentru același lucru este intervalul pe care l-am actualizat în funcția WorksheetFunction (care este B2: B11). Acesta este motivul, un cod dinamic care poate lua în considerare ultimul rând umplut face mai important pentru noi.
În acest articol, voi introduce câteva metode care pot fi utile pentru a afla ultimul rând pentru un set de date dat folosind codul VBA.
Cum să găsiți ultimul rând folosit în coloană folosind VBA?
Mai jos găsiți diferite exemple cu diferite metode pentru a găsi ultima Rândă a unei coloane în Excel folosind codul VBA.
Puteți descărca acest șablon VBA Last Row Excel - Template Excel VBA Last RowExemplul # 1 - Utilizarea metodei Range.End ()
Ei bine, această metodă este aceeași cu utilizarea Ctrl + săgeată jos în Excel pentru a merge la ultimul rând care nu este gol. Pe linii similare, urmați pașii de mai jos pentru crearea codului în VBA pentru a ajunge la ultimul rând care nu este gol al unei coloane din Excel.
Pasul 1: Definiți o variabilă care poate lua valoare pentru ultimul rând care nu este gol de coloana excel.
Cod:
Sub Exemplu2 () Dim Last_Row As Long End Sub
Aici, variabila Last_Row este definită drept LONG doar pentru a vă asigura că poate lua orice număr de argumente.
Pasul 2: Folosiți variabila definită pentru a menține valoarea ultimului rând care nu este gol.
Cod:
Sub Exemplu2 () Dim Last_Row As Long Last_Row = Sub End
Pasul 3: Introduceți codul începând cu CELLS (Rows.Count în fața Last_Row = .
Cod:
Sub Exemplu2 () Dim Last_Row As Long Last_Row = Celule (Rows.Count Sub End
Pasul 4: Mențiune 1 după virgulă în codul menționat mai sus. Valoarea numerică 1 este sinonimă cu prima coloană din foaia excel.
Cod:
Sub Exemplu2 () Dim Last_Row As Long Last_Row = Celule (Rows.Count, 1) End Sub
Acest cod permite VBA să afle numărul total de rânduri (goale + non-goale) prezente în prima coloană a foii de lucru Excel. Acest lucru înseamnă că acest cod permite sistemului să treacă la ultima celulă Excel.
Ce se întâmplă dacă sunteți la ultima celulă a excel și doriți să mergeți până la ultimul rând care nu este gol? Veți folosi Ctrl + Arrow Up, nu?
Aceeași logică pe care o vom folosi în următoarea linie de cod.
Pasul 5: Utilizați o combinație de taste Fin și xlUp pentru a merge la ultimul rând care nu este gol în excel.
Cod:
Sub Exemplu2 () Dim Last_Row As Long Last_Row = Celule (Rows.Count, 1) .End (xlUp) End Sub
Aceasta vă va duce la ultimul rând care nu este gol din excel. Cu toate acestea, ai dorit un număr de rând pentru același.
Pasul 6: Folosiți ROW pentru a obține numărul de rând din ultimul rând care nu este gol.
Cod:
Sub Exemplu2 () Dim Last_Row As Long Last_Row = Celulele (Rows.Count, 1) .End (xlUp). Sub End Row
Pasul 7: Afișează valoarea Last_Row care conține ultimul număr de rând care nu este gol folosind MsgBox.
Cod:
Sub Exemplu2 () Dim Last_Row As Long Last_Row = Celule (Rows.Count, 1) .End (xlUp). Row MsgBox Last_Row Sub Sub
Pasul 8: Rulați codul folosind butonul Run sau lovind F5 și vedeți ieșirea.
ieşire:
Pasul 9: Acum, să ștergem un rând și să vedem dacă codul dă un rezultat corect sau nu. Ne va ajuta să verificăm dinamismul codului nostru.
Exemplul # 2 - Utilizarea Range și SpecialCells
De asemenea, putem utiliza proprietatea Range și SepcialCells ale VBA pentru a obține ultimul rând care nu este gol al foii Excel.
Urmați pașii de mai jos pentru a obține ultimul rând care nu este gol în excel, folosind codul VBA:
Pasul 1: Definiți o variabilă din nou ca Long.
Cod:
Sub Exemplu3 () Dim Last_Row As Long End Sub
Pasul 2: Începeți stocarea valorii la variabila Last_Row folosind operatorul de alocare.
Cod:
Sub Exemplu3 () Dim Last_Row As Long Last_Row = Sub End
Pasul 3: Începeți să tastați intervalul („A: A”) .
Cod:
Sub Exemplu3 () Dim Last_Row As Long Last_Row = Range ("A: A") End Sub
Pasul 4: Utilizați funcția SpecialCells pentru a afla ultima celulă care nu este goală.
Cod:
Sub Exemplu3 () Dim Last_Row As Long Last_Row = Interval ("A: A"). SpecialCells (xlCellTypeLastCell) Sub Sub
Această funcție SpecialCells selectează ultima celulă din excel, deoarece este scrisă parantezele ( xlCellTypeLastCell permite să selectați ultima celulă care nu este goală din foaia dvs. excel).
Pasul 5: Acum, utilizați ROW pentru a obține ultimul rând din foaia dvs. excel.
Cod:
Sub Exemplu3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell).
Aceasta va returna ultimul rând care nu este gol pentru dvs. de la excel.
Pasul 6: Acum, alocați această valoare a Last_Row lui MsgBox, astfel încât să putem vedea ultimul număr de rând care nu este gol în caseta de mesaje.
Cod:
Sub Exemplu3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub
Pasul 7: Rulați codul apăsând pe F5 sau pe butonul Execuție plasat în partea de sus a colțului stâng.
ieşire:
Puteți vedea că ultimul număr de celule care nu este gol este afișat prin MsgBox cu referire la coloana A. Deoarece am menționat coloana A în funcția Range în timp ce definiți formula variabilă.
Pasul 8: Dacă ștergem un rând și putem rula această formulă. Să vedem ce se întâmplă.
Puteți vedea că sistemul a dat încă numărul de rânduri ca 14. Chiar dacă am șters un rând și numărul real de rânduri este 13, sistemul nu a capturat numărul de rânduri cu exactitate. Pentru ca sistemul să capteze numărul real de rânduri, trebuie să salvați foaia de lucru și să rulați din nou codul.
Puteți vedea numărul actual de rânduri afișat în această captură de ecran acum.
Exemplul # 3 - Utilizarea Range.Find ()
Urmați pașii de mai jos pentru a obține ultimul rând care nu este gol în excel, folosind codul VBA:
Pasul 1: Definiți o variabilă cât mai lungă.
Cod:
Sub Exemplu4 () Dim Last_Row As Long End Sub
Pasul 2: Acum, utilizați următorul cod pentru a vedea ultimul rând care nu este gol.
Cod:
Sub Exemplu4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub
Aici, funcția FIND caută o primă celulă care nu este necompletată. Asterisk (*) este un operator wildcard care ajută la aflarea aceluiași lucru.
Pornind de la celula A1, sistemul revine la ultima celulă din foaie și caută într-o direcție înapoi (xlPrevious). Se deplasează de la dreapta la stânga (xlByRows) și se înfășoară în aceeași foaie prin toate rândurile de pe linii similare, până când găsește un rând necomplet (consultați .ROW de la sfârșitul codului).
Pasul 3: Utilizați MsgBox pentru a stoca valoarea ultimului rând care nu este gol și pentru ao vedea ca o casetă pop-up.
Cod:
Sub Exemplu4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Row MsgBox Last_Row End Sub
Pasul 4: Rulați codul și vedeți ieșirea ca o casetă pop-up care conține ultimul număr de rând care nu este gol.
ieşire:
Lucruri de amintit
- End (Exemplul 1) poate fi folosit pentru a afla prima celulă / rând necompletat sau ultima celulă / rând ne gol dintr-o coloană dată folosind codul VBA.
- Finalul funcționează pe o singură coloană de cele mai multe ori. Dacă aveți date în intervale, ar fi dificil să decideți ce coloană trebuie utilizată pentru a afla ultimul rând care nu este gol.
- Find (Exemplul 3) funcționează pe o gamă întreagă de la punctul de pornire și află ultima celulă / rândul care nu este gol dintr-o coloană dată folosind codul VBA. De asemenea, poate fi folosit pentru a afla ultima coloană care nu este goală.
Articole recomandate
Acesta este un ghid pentru VBA Last Row. Aici vom discuta despre cum puteți găsi ultimul rând folosit într-o coloană dată împreună cu câteva exemple practice și șablonul excel descărcabil. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -
- Cum se utilizează coloana de insertie VBA?
- Cum să selectați rândurile și coloanele Excel?
- Prezentare generală a celulelor de gamă VBA
- Cum să adăugați celule în Excel?