VBA sista raden

I VBA när vi måste hitta den sista raden finns det många olika metoder och den vanligaste metoden är End (XLDown) -metoden och det finns andra metoder som att hitta det sista värdet med hjälp av sökfunktionen i VBA, End (XLDown ). Raden är det enklaste sättet att komma till den sista raden.

Excel VBA sista raden

Om att skriva koden är det första framsteget du gjorde i VBA är nästa steg för dig att göra koden dynamisk. Excel är fullt av cellreferenser, när vi hänvisar till cellen blir det fixat. Om våra data ökar måste vi gå tillbaka till cellreferensen och ändra referenserna för att göra resultatet uppdaterat.

För ett exempel, se nedanstående kod.

Koda:

 Sub Last_Row_Example1 () Range ("D2"). Value = WorksheetFunction.Sum (Range ("B2: B7")) End Sub 

Ovanstående kod säger i D2-cellvärdet ska vara summeringen av Range (“B2: B7”).

Nu ska jag lägga till fler värden i listan.

Om jag nu kör koden kommer det inte att ge mig uppdateringsresultatet utan det håller fortfarande fast vid det gamla intervallet, dvs. Range (“B2: B7”).

Det är här den dynamiska koden är mycket viktig.

Under processen att göra koden dynamisk är det mycket viktigt att hitta den senast använda raden i kolumnen. I den här artikeln kommer vi att diskutera sätten att hitta den sista raden i Excel VBA.

Hur hittar jag senast använda rader i kolumnen?

Nedan följer exemplen för att hitta den senast använda raden i Excel VBA.

Du kan ladda ner denna VBA-mall för sista raden här - VBA-sista radmallen

Metod 1

Innan jag förklarar koden vill jag att du kommer ihåg hur du går till den sista raden i det vanliga kalkylbladet.

Vi använder snabbtangenten Ctrl + nedåtpilen.

Det tar oss till den senast använda raden före en tom cell. Vi kommer att använda samma metod i VBA för att hitta den sista raden.

Steg 1: Definiera variabeln som LÅNG.

Koda:

 Sub Last_Row_Example2 () Dim LR Så länge 'För att förstå LR = Last Rad End Sub 

Steg 2: För den här variabeln tilldelar vi det senast använda radnumret.

Koda:

 Sub Last_Row_Example2 () Dim LR Så länge 'För att förstå LR = Senaste rad LR = End Sub 

Steg 3: Skriv koden som CELLS (Rows.Count,

Koda:

 Sub Last_Row_Example2 () Dim LR så länge 'För att förstå LR = Last Row LR = Cells (Rows.Count, End Sub 

Steg 4: Ange nu kolumnnumret som 1.

Koda:

 Sub Last_Row_Example2 () Dim LR Så länge 'För att förstå LR = Last Row LR = Cells (Rows.Count, 1) End Sub 

CELLS (Rows.Count, 1) betyder att räkna hur många rader som finns i den första kolumnen.

Så ovanstående VBA-kod tar oss till den sista raden i Excel-bladet.

Steg 5: Om vi ​​befinner oss i den sista cellen på arket för att gå till den senast använda raden kommer vi att trycka på genvägsknappen som Ctrl + Uppåtpiltangent .

I VBA måste vi använda slutknappen och uppåt, dvs. avsluta VBA xlUp

Koda:

 Sub Last_Row_Example2 () Dim LR Så länge 'För att förstå LR = Last Row LR = Cells (Rows.Count, 1). End (xlUp) End Sub 

Steg 6: Nu tar det oss till den senast använda raden från botten. Nu behöver vi radnumret på detta. Så använd egenskapen ROW för att få radnumret.

Koda:

 Sub Last_Row_Example2 () Dim LR Så länge 'För att förstå LR = Last Row LR = Cells (Rows.Count, 1). End (xlUp). Row End Sub 

Steg 7: Nu innehåller variabeln det senast använda radnumret. Visa värdet på denna variabel i meddelandefältet i VBA-kod.

Koda:

 Sub Last_Row_Example2 () Dim LR Så länge 'För att förstå LR = Last Row LR = Cells (Rows.Count, 1). End (xlUp). Row MsgBox LR End Sub 

Kör denna kod med F5-tangenten eller manuellt, den visar den senast använda raden.

Produktion:

Den senast använda raden i detta kalkylblad är 13.

Nu tar jag bort en rad till och kör koden och ser dynamiken i koden.

Ok, nu tar resultatet automatiskt den sista raden.

Detta är vad den dynamiska VBA-sista radkoden är.

Som jag visade i det tidigare exemplet ändra radnumret från ett numeriskt värde till LR.

Koda:

 Sub Last_Row_Example2() Dim LR As Long 'For understanding LR = Last Row LR = Cells(Rows.Count, 1).End(xlUp).Row Range("D2").Value = WorksheetFunction.Sum(Range("B2:B" & LR)) End Sub 

I have removed B13 and added the variable name LR.

Now it does not matter how many rows you add it will automatically take the updated reference.

Method #2

We can also find the last row in VBA by using the Range object and special VBA cells property as well.

Code:

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

The code also gives you the last used row. For example, look at the below worksheet image.

If I run the code manually or using F5 key result will be 12 because 12 is the last used row.

Output:

Now I will delete the 12th row and see the result.

Even though I have deleted one row it is still showing the result as 12.

In order to make this code work we need to hit the save button after every action, then this code will return accurate results.

I have saved the workbook and now see the result.

Method #3

We can find the VBA last row in the used range. Below code also returns the last used row.

Code:

 Sub Last_Row_Example4() Dim LR As Long LR = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row MsgBox LR End Sub 

This will also return the last used row.

Output: