VBA sista rad - Hur hittar jag senast använda rad i Excel med hjälp av VBA-kod?

Innehållsförteckning:

Anonim

Excel VBA sista rad

Att hitta den sista raden i en kolumn är en viktig aspekt för att skriva makroer och göra dessa dynamiska. Eftersom vi inte föredrar att uppdatera cellområdena då och då när vi arbetar med Excel-cellreferenser. Som en kodare / utvecklare föredrar du alltid att skriva en dynamisk kod som kan användas på vilken data som helst och tillräckligt för ditt krav. Dessutom skulle det alltid vara bra om du har den sista raden känd för dina data så att du dynamiskt kan ändra koden enligt ditt krav.

Jag kommer bara att påpeka ett exempel som upprepar vikten av dynamisk kod.

Anta att jag har en information som anges nedan med anställda och deras löner.

Och titta på koden nedan:

Koda:

 Subexempel1 () Område ("D2"). Värde = KalkylarkFunktion.Sum (Område ("B2: B11")) Slut Sub 

Här skriver denna kod summan av löner för alla anställda (cell B2: B11 ) i cell D2 . Se bilden nedan:

Vad händer nu om jag lägger till några celler i dessa data och kör den här koden igen?

Logiskt sett kommer ovanstående kod inte att sammanfatta alla de 14 raderna från kolumn B. Anledning till detsamma är det intervall som vi har uppdaterat under WorksheetFunction (som är B2: B11). Detta är anledningen, en dynamisk kod som kan ta den sista fyllda raden i beaktande gör viktigare för oss.

I den här artikeln kommer jag att introducera några metoder som kan vara användbara för att ta reda på den sista raden för en given datauppsättning med VBA-kod.

Hur hittar jag senast använda rad i kolumn med VBA?

Nedan följer de olika exemplen med olika metoder för att hitta den senast använda raden i en kolumn i Excel med VBA-kod.

Du kan ladda ner denna VBA Last Row Excel-mall här - VBA Last Row Excel-mall

Exempel 1 - Använd Range.End () -metod

Tja, den här metoden är lika som att använda Ctrl + pil ned i Excel för att gå till den sista icke-tomma raden. På liknande linjer följer du stegen nedan för att skapa kod i VBA för att nå den sista icke-tomma raden i en kolumn i Excel.

Steg 1: Definiera en variabel som kan ta värde för den sista icke-tomma raden med excel-kolumn.

Koda:

 Subexempel2 () Dim Last_Row As Long End Sub 

Här definieras variabeln Last_Row som LONG bara för att se till att den kan ta ett antal argument.

Steg 2: Använd den definierade variabeln för att hålla värdet på den sista icke-tomma raden.

Koda:

 Subexempel2 () Dim Last_Row As Long Last_Row = End Sub 

Steg 3: Skriv in koden som börjar med CELLS (Rader.Konto framför Last_Row = .

Koda:

 Subexempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub 

Steg 4: Nämn 1 efter komma i ovannämnda kod. Värdet numeriskt 1 är synonymer till den första kolumnen i excel-arket.

Koda:

 Subexempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub 

Denna kod gör det möjligt för VBA att ta reda på det totala antalet (tomma + icke-tomma) rader som finns i den första kolumnen i Excel-arbetsbladet. Detta betyder att den här koden tillåter systemet att gå till den sista cellen i Excel.

Vad händer nu om du är i den sista cellen i excel och vill gå upp till den sista icke-tomma raden? Du använder Ctrl + pil upp, eller hur?

Samma logik kommer vi att använda i nästa kodrad.

Steg 5: Använd en kombination av slutknappen och xlUp för att gå till den sista icke-tomma raden i Excel.

Koda:

 Underexempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) End Sub 

Detta tar dig till den sista icke-tomma raden i excel. Men du ville ha ett radnummer för samma.

Steg 6: Använd ROW för att få radnumret för den sista icke-tomma raden.

Koda:

 Underexempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub 

Steg 7: Visa värdet för Last_Row som innehåller det sista icke-tomma radnumret med MsgBox.

Koda:

 Subexempel2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub 

Steg 8: Kör koden med knappen Kör eller slå F5 och se utgången.

Produktion:

Steg 9: Låt oss nu ta bort en rad och se om koden ger ett korrekt resultat eller inte. Det hjälper oss att kontrollera dynamiken i vår kod.

Exempel 2 - Använda Range och SpecialCells

Vi kan också använda egenskapen Range och SepcialCells i VBA för att få den sista icke-tomma raden i excelarket.

Följ stegen nedan för att få den sista icke-tomma raden i Excel med VBA-kod:

Steg 1: Definiera en variabel igen som Lång.

Koda:

 Subexempel3 () Dim Last_Row As Long End Sub 

Steg 2: Börja lagra värdet till variabeln Last_Row med tilldelningsoperatören.

Koda:

 Subexempel3 () Dim Last_Row As Long Last_Row = End Sub 

Steg 3: Börja skriva intervall (“A: A”) .

Koda:

 Subexempel3 () Dim Last_Row As Long Last_Row = Range ("A: A") Slut Sub 

Steg 4: Använd SpecialCells-funktionen för att ta reda på den sista icke-tomma cellen.

Koda:

 Subexempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Denna funktion SpecialCells väljer den sista cellen från ditt excel eftersom det skrivs parenteserna ( xlCellTypeLastCell gör det möjligt att välja den sista icke-tomma cellen från ditt excel-ark).

Steg 5: Använd nu ROW för att få den sista raden från ditt excel-ark.

Koda:

 Subexempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Detta kommer att returnera den sista icke-tomma raden för dig från ditt excel.

Steg 6: Tilldela detta värde för Last_Row till MsgBox så att vi kan se det sista icke-tomma radnumret i meddelanderutan.

Koda:

 Subexempel3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Steg 7: Kör koden genom att slå F5 eller Run-knappen placerad längst upp i det vänstra hörnet.

Produktion:

Du kan se att det sista icke-tomma cellnumret poppas ut via MsgBox med hänvisning till kolumn A. Eftersom vi har nämnt kolumn A under Range-funktion medan vi definierar variabelformeln.

Steg 8: Om vi ​​tar bort en rad och kan köra denna formel. Vi får se vad som händer.

Du kan se att systemet fortfarande har gett radräkningen som 14. Även om jag har tagit bort en rad och det faktiska räknarantalet är 13 har systemet inte fångat radräkningen exakt. För att systemet ska fånga det faktiska radantalet måste du spara kalkylbladet och köra koden igen.

Du kan se det faktiska radantalet som visas i den här skärmdumpen nu.

Exempel 3 - Använd Range.Find ()

Följ stegen nedan för att få den sista icke-tomma raden i Excel med VBA-kod:

Steg 1: Definiera en variabel så länge.

Koda:

 Subexempel4 () Dim Last_Row As Long End Sub 

Steg 2: Använd nu följande kod för att se den sista icke-tomma raden.

Koda:

 Subexempel4 () Dim Last_Row så länge Last_Row = Cells.Find (Vad: = "*", _ Efter: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub 

Här ser FIND-funktionen efter en första cell som inte är tom. Asterisk (*) är en jokertelefonoperatör som hjälper till att ta reda på detsamma.

Med början från cell A1 går systemet tillbaka till den sista cellen från arket och söker i bakåtriktning (xlPrevious). Den rör sig från höger till vänster (xlByRows) och slingrar upp i samma ark genom alla raderna på liknande linjer tills den hittar en icke-tom rad (se .ROW i slutet av koden).

Steg 3: Använd MsgBox för att lagra värdet på den sista icke-tomma raden och se den som en popup-ruta.

Koda:

 Subexempel4 () Dim Last_Row så länge Last_Row = Cells.Find (Vad: = "*", _ Efter: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub 

Steg 4: Kör koden och se utgången som en popup-ruta som innehåller det sista icke-tomma radnumret.

Produktion:

Saker att komma ihåg

  • Slut (exempel 1) kan användas för att ta reda på den första tomma cellen / raden, eller den sista icke-tomma cellen / raden i en given kolumn med VBA-kod.
  • Slutet fungerar på en enda kolumn för det mesta. Om du har data inom intervall, skulle det vara svårt att bestämma vilken kolumn som ska användas för att ta reda på den sista icke-tomma raden.
  • Find (Exempel 3) fungerar på ett helt intervall från startpunkten och hittar den sista icke-tomma cellen / raden i en given kolumn med VBA-kod. Det kan också användas för att ta reda på den sista icke-tomma kolumnen.

Rekommenderade artiklar

Detta är en guide till VBA Last Row. Här diskuterar vi hur du hittar den senast använda raden i en given kolumn tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också titta på följande artiklar för att lära dig mer -

  1. Hur använder man VBA-insättningskolumn?
  2. Hur väljer jag Excel-rader och kolumner?
  3. Översikt över VBA Range Cells
  4. Hur lägger jag till celler i Excel?