Excel VBA Sidste række
At finde den sidste række i en kolonne er et vigtigt aspekt ved skrivning af makroer og gøre disse dynamiske. Da vi ikke foretrækker at opdatere celleområderne hver gang, da vi arbejder med Excel-cellehenvisninger. Som værende en koder / udvikler foretrækker du altid at skrive en dynamisk kode, der kan bruges på alle data og tilfredsstille dit krav. Derudover ville det altid være godt, hvis du har den sidste række kendt af dine data, så du dynamisk kan ændre koden efter dit krav.
Jeg vil bare påpege et eksempel, der gentager vigtigheden af dynamisk kode.
Antag, at jeg har en data som beskrevet nedenfor med medarbejderen og deres lønninger.
Og se på koden nedenfor:
Kode:
Undereksempel1 () Område ("D2"). Værdi = ArbejdsarkFunktion.Sum (Område ("B2: B11")) Sluttunder
Her udskriver denne kode summen af lønninger for alle ansatte (celle B2: B11 ) i celle D2 . Se billedet herunder:
Hvad nu, hvis jeg tilføjer nogle celler i disse data og kører denne kode igen?
Logisk set vil ovennævnte kode ikke opsummere alle de 14 rækker fra kolonne B. Årsag til det samme er det interval, som vi har opdateret under WorksheetFunction (som er B2: B11). Dette er grunden til, at en dynamisk kode, der kan tage den sidste udfyldte række i betragtning, bliver mere vigtig for os.
I denne artikel introducerer jeg nogle metoder, der kan være nyttige til at finde ud af den sidste række for et givet datasæt ved hjælp af VBA-kode.
Hvordan finder jeg sidst brugte række i kolonnen ved hjælp af VBA?
Nedenfor er de forskellige eksempler med forskellige metoder til at finde den sidst anvendte række af en kolonne i Excel ved hjælp af VBA-kode.
Du kan downloade denne VBA Sidste række Excel-skabelon her - VBA Sidste række Excel-skabelonEksempel 1 - Brug af Range.End () -metode
Nå, denne metode er den samme som at bruge Ctrl + pil ned i Excel for at gå til den sidste række, der ikke er tom. Følg nedenstående trin for at oprette kode i VBA på lignende linjer for at nå til den sidste ikke-tomme række i en kolonne i Excel.
Trin 1: Definer en variabel, der kan tage værdi for den sidste ikke-tomme række med excel-kolonne.
Kode:
Subeksempel2 () Dim Last_Row Som Long End Sub
Her defineres variablen Last_Row som LONG bare for at sikre, at den kan tage et hvilket som helst antal argumenter.
Trin 2: Brug den definerede variabel til at indeholde værdien af den sidste ikke-tomme række.
Kode:
Undereksempel2 () Dim Last_Row As Long Last_Row = End Sub
Trin 3: Indtast koden, der starter med CELLS (Rows.Count foran Last_Row = .
Kode:
Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub
Trin 4: Nævn 1 efter et komma i ovennævnte kode. Værdien numerisk 1 er synonymer til den første kolonne i excelarket.
Kode:
Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub
Denne kode giver VBA mulighed for at finde ud af det samlede antal (tomme + ikke-tomme) rækker, der er til stede i den første kolonne i Excel-regnearket. Dette betyder, at denne kode giver systemet mulighed for at gå til den sidste celle i Excel.
Hvad nu, hvis du er i den sidste celle i excel og ønsker at gå op til den sidste ikke-tomme række? Du bruger Ctrl + pil op, ikke?
Den samme logik vil vi bruge i den næste kodelinje.
Trin 5: Brug en kombination af Slutnøgle og xlUp for at gå til den sidste ikke-tomme række i excel.
Kode:
Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1). End (xlUp) End Sub
Dette fører dig til den sidste ikke-tomme række i excel. Du ønskede dog et rækkenummer for det samme.
Trin 6: Brug ROW for at få rækkenummeret for den sidste ikke-tomme række.
Kode:
Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub
Trin 7: Vis værdien af Last_Row, der indeholder det sidste ikke-tomme rækkenummer ved hjælp af MsgBox.
Kode:
Undereksempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub
Trin 8: Kør koden ved hjælp af knappen Kør eller slå F5 og se output.
Produktion:
Trin 9: Lad os nu slette en række og se, om koden giver et nøjagtigt resultat eller ej. Det vil hjælpe os med at kontrollere dynamikken i vores kode.
Eksempel 2 - Brug af rækkevidde og specialceller
Vi kan også bruge egenskaben Range og SepcialCells i VBA til at få den sidste ikke-tomme række af excelarket.
Følg nedenstående trin for at få den sidste ikke-tomme række i Excel ved hjælp af VBA-kode:
Trin 1: Definer en variabel igen som lang.
Kode:
Undereksempel3 () Dim Last_Row As Long End Sub
Trin 2: Begynd at gemme værdien til variablen Last_Row ved hjælp af tildelingsoperatøren.
Kode:
Undereksempel3 () Dim Last_Row As Long Last_Row = End Sub
Trin 3: Begynd at indtaste rækkevidde (“A: A”) .
Kode:
Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A") End Sub
Trin 4: Brug SpecialCells-funktionen til at finde ud af den sidste ikke-tomme celle.
Kode:
Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub
Denne funktion SpecialCells vælger den sidste celle fra din excel, da den er skrevet i parenteserne ( xlCellTypeLastCell giver mulighed for at vælge den sidste ikke-tomme celle fra dit excelark).
Trin 5: Brug nu ROW for at hente den sidste række fra dit excelark.
Kode:
Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub
Dette vil returnere den sidste ikke-tomme række for dig fra din excel.
Trin 6: Tildel nu denne værdi af Last_Row til MsgBox, så vi kan se det sidste ikke-tomme rækkenummer i meddelelsesfeltet.
Kode:
Undereksempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub
Trin 7: Kør koden ved at trykke på F5 eller Run-knappen placeret øverst i venstre hjørne.
Produktion:
Du kan se, at det sidste ikke-tomme cellenummer poppes ud gennem MsgBox med henvisning til kolonne A. Fordi vi har nævnt kolonnen A under Range-funktion, mens vi definerer variabelformlen.
Trin 8: Hvis vi sletter en række og kan køre denne formel. Lad os se hvad der sker.
Du kan se, at systemet stadig har rædetælling som 14. Selvom jeg har slettet en række, og det faktiske rækketal er 13, har systemet ikke fanget rædetallet nøjagtigt. For at systemet skal fange det faktiske rækkeantal, skal du gemme regnearket og køre koden igen.
Du kan se det faktiske rækkeantal vises i dette skærmbillede nu.
Eksempel 3 - Brug af rækkevidde. Find ()
Følg nedenstående trin for at få den sidste ikke-tomme række i Excel ved hjælp af VBA-kode:
Trin 1: Definer en variabel så længe.
Kode:
Subeksempel4 () Dim Last_Row Som Long End Sub
Trin 2: Brug nu følgende kode til at se den sidste række, der ikke er tom.
Kode:
Undereksempel4 () Dim Last_Row så længe Last_Row = Cells.Find (Hvad: = "*", _ Efter: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = Falsk) .Row End Sub
Her søger FIND-funktion efter en første ikke-tom celle. Asterisk (*) er en jokertekstoperatør, der hjælper med at finde ud af det samme.
Fra celle A1 går systemet tilbage til den sidste celle fra arket og søger i en retning bagud (xlPrevious). Det bevæger sig fra højre til venstre (xlByRows) og løber op i det samme ark gennem alle rækkerne på lignende linjer, indtil den finder en ikke-tom række (se .ROW i slutningen af koden).
Trin 3: Brug MsgBox til at gemme værdien af den sidste ikke-tomme række og se den som en pop op-boks.
Kode:
Undereksempel4 () Dim Last_Row så længe Last_Row = Cells.Find (Hvad: = "*", _ Efter: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub
Trin 4: Kør koden, og se output som en pop-up-boks, der indeholder det sidste ikke-tomme rækkenummer.
Produktion:
Ting at huske
- Slut (eksempel 1) kan bruges til at finde ud af den første tomme celle / række eller den sidste ikke-tomme celle / række i en given kolonne ved hjælp af VBA-kode.
- Slutningen fungerer mest på én kolonne. Hvis du har data i intervaller, ville det være vanskeligt at beslutte, hvilken kolonne der skal bruges til at finde ud af den sidste række, der ikke er tom.
- Find (eksempel 3) fungerer på et helt interval fra startsted og finder ud af den sidste ikke-tomme celle / række i en given kolonne ved hjælp af VBA-kode. Det kan også bruges til at finde ud af den sidste ikke-tomme kolonne.
Anbefalede artikler
Dette er en guide til VBA Last Row. Her diskuterer vi, hvordan man finder den sidst anvendte række i en given kolonne sammen med nogle praktiske eksempler og downloadbar excel-skabelon. Du kan også se på de følgende artikler for at lære mere -
- Sådan bruges VBA-indsættelseskolonne?
- Sådan vælges Excel rækker og kolonner?
- Oversigt over VBA Range Cells
- Sådan tilføjes celler i Excel?