Hitta sista raden med data i ett intervall med hjälp av Excel VBA-makron (7 metoder)

  • Dela Detta
Hugh West

När du arbetar med Microsoft Excel är det vanligt att hitta de sista raderna eller kolumnerna. Vi använder tangentbordet för att hitta de senast använda raderna eller kolumnerna. Men du kan hamna i en situation där du behöver hitta den senast använda raden från en komplex datamängd. I den här handledningen lär du dig att hitta den sista raden med data i ett intervall med hjälp av VBA i Excel med praktiska exempel och lämpliga illustrationer.

Ladda ner övningsboken

Ladda ner arbetsboken.

Hitta den senast använda raden i ett intervall.xlsm

7 metoder för att hitta sista raden med data i ett intervall med Excel VBA-makros

I de kommande avsnitten kommer vi att ge dig sju metoder som hjälper dig att hitta den sista raden med data i ett intervall med hjälp av VBA i Excel. Vi rekommenderar att du lär dig och tillämpar alla dessa metoder för att berika dina Excel-kunskaper.

📕 Läs mer : Hitta den sista cellen med värde i raden i Excel (6 metoder)

För att demonstrera denna handledning använder vi detta dataset:

Här har vi ett dataset som består av information om vissa spelare och som vi kommer att använda för att lära dig alla metoder.

Öppna VBA-redigeraren

Innan vi börjar ger vi dig en enkel påminnelse om att öppna VBA-redigeraren i Excel.

Tryck först på Alt+F11 på tangentbordet. Välj sedan Infoga> Modul. Därefter öppnas VBA-redigeraren i Excel.

1. Användning av egenskapen Range.End för att hitta sista raden med data i ett intervall med hjälp av VBA

Den här metoden hittar i princip slutet av ett intervall. I huvudsak det senast använda cellintervallet. Vi kan använda den här metoden för att hitta den sista raden med data i ett visst intervall. Om du använder VBA får du önskat resultat.

📌 Steg

Öppna först VBA Redaktör.

Skriv sedan följande kod:

 Sub range_end_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = Range("B4").End(xlDown).Row MsgBox "Senast använda rad: " & LastRow End Sub 

Spara filen och tryck sedan på Alt+F8 för att öppna dialogrutan Makro. Välj range_end_method

Därefter klickar du på Kör.

Som du kan se har vi lyckats hitta den sista raden med data i ett intervall med hjälp av VBA i Excel.

2. Range.Find egenskap av VBA i Excel

I VBA använder vi metoden Range.Find för att söka efter ett visst värde i en datamängd. Men den här metoden är praktisk för att hitta den sista raden med data i ett intervall. Den fungerar som dialogrutan Hitta & Ersätt i Excel. Metoden Range.Find har många argument, men vi kommer inte att använda dem alla.

Innan vi använder Range.Find-metoden ska vi ge dig lite snabb information:

Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious)

Vad := "*" - Asterisken är ett jokertecken som hittar all text eller alla siffror i cellen. Det är i huvudsak samma sak som att söka efter en cell som inte är tom.

Sökordning:=xlByRows - Detta innebär att man måste gräva igenom varje rad innan man går vidare till nästa. Riktningen söks från vänster till höger eller från höger till vänster beroende på SearchDirection-argumentet. Det ytterligare alternativet här är xlByColumns, som används när man letar efter den sista kolumnen.

SearchDirection:=xlPrevious - Detta bestämmer vilken riktning som ska utforskas. xlPrevious innebär att den söker från höger till vänster eller från botten till toppen. Det andra alternativet är xlNext, vilket innebär att den söker i motsatt riktning.

📌 Steg

Öppna först VBA Editor.

Skriv sedan följande kod:

 Sub range_find_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row MsgBox "Senast använda rad: " & LastRow End Sub 

Spara filen och tryck sedan på Alt+F8 för att öppna dialogrutan Makro. Välj range_find_method.

Klicka sedan på Kör .

I slutändan kommer den att hitta den sista raden med data i vårt Excel-arbetsblad.

3. Använda funktionen SpecialCells för att hitta sista raden med VBA

Den här metoden fungerar som att trycka på Ctrl+End När du trycker på Ctrl+End på tangentbordet kommer du alltid till den sista raden oavsett var du befinner dig. Men om du vill hitta den senast använda raden med data med hjälp av VBA-koder i Excel är den här koden ett måste för dig.

📌 Steg

Öppna först VBA Editor.

Skriv sedan följande kod:

 Sub specialcells_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.SpecialCells(xlCellTypeLastCell).Row MsgBox "Senast använda rad: " & LastRow End Sub 

Spara filen och tryck sedan på Alt+F8 för att öppna dialogrutan Makro. Välj specialcells_metod .

Klicka sedan på Kör .

Som du kan se har vi lyckats hitta den sista raden med data med hjälp av VBA i Excel.

4. Använda funktionen UsedRange för att hitta den sista raden med data i ett intervall

UsedRange i VBA är en egenskap i arbetsbladet som returnerar ett intervallobjekt som representerar det använda intervallet (alla Excel-celler som används eller laddas i ett arbetsblad) på ett visst arbetsblad. Det är en egenskap som innebär det område som täcks eller anges av celler som används i övre vänstra delen av arbetsbladet och de senast använda cellerna till höger i ett arbetsblad.

📌 Steg

Öppna först VBA Editor.

Skriv sedan följande kod:

 Sub usedRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row MsgBox "Sista använda raden: " & LastRow End Sub 

Spara filen och tryck sedan på Alt+F8 för att öppna dialogrutan Makro. Välj usedRange_method.

Klicka sedan på Kör .

Slutligen kommer du att se den senast använda raden på ett kalkylblad i Excel.

5. Använda tabellområde med VBA i Excel

Om du har en tabell i arbetsbladet kan du hitta den sista raden med data med den här metoden.

📌 Steg

Öppna först VBA Editor.

Skriv sedan följande kod:

 Sub TableRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.ListObjects("Table1").Range.Rows.Count + 3 MsgBox "Senast använda raden: " & LastRow End Sub 

Obs : Här lägger vi till 3 med den sista raden eftersom vårt dataset började efter rad 3.

Spara filen och tryck sedan på Alt+F8 för att öppna dialogrutan Makro. Välj TableRange_method.

Klicka sedan på Kör .

Som du kan se har vi lyckats använda tabellintervallmetoden i VBA-koder för att hitta den sista raden med data i Excel.

6. Användning av det namngivna intervallet för att hitta den sista raden med data i ett intervall

Den här metoden används inte ofta i Excel, men vi tycker att du bör lära dig den för att berika dina kunskaper.

Om ditt dataset har ett namngivet intervall kan du använda den här koden. Ta en titt på följande skärmdump, som innehåller ett namngivet intervall.

📌 Steg

Öppna först VBA Editor.

Skriv sedan följande kod:

 Sub nameRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("Named_Range").Rows.Count + 1 MsgBox "senast använda rad: " & LastRow End Sub 

Obs : Vi lägger till 1 till LastRow eftersom vårt intervall började efter rad 1.

Spara filen och tryck sedan på Alt+F8 för att öppna dialogrutan Makro. Välj nameRange_method.

Därefter klickar du på Kör.

Som du kan se har vi lyckats hitta den sista raden med data med hjälp av VBA.

7. CurrentRegion-funktionen i VBA i Excel

Du kan också använda VBA-metoden CurrentRegion för att hitta den senast använda raden i Excel. Även om det är knepigt kan du använda detta till din fördel om du vill.

📌 Steg

Öppna först VBA Editor.

Skriv sedan följande kod:

 Sub CurrentRegion_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("B4").CurrentRegion.Rows.Count + 3 "Lägg till siffror enligt ditt val" MsgBox "Last used row: " & LastRow End Sub 

Obs : Range ska vara den första cellen i datasetet. Lägg till antalet rader enligt ditt val. Här har vi lagt till 3 eftersom datasetetet började efter rad 3.

Spara filen och tryck sedan på Alt+F8 för att öppna dialogrutan Makro. Välj CurrentRegion_method

Därefter klickar du på Kör.

Som du kan se har vi lyckats hitta den sista raden med data med hjälp av VBA-koden.

💬 Saker att komma ihåg

Range.End fungerar bara på en enda rad eller kolumn. Om ditt dataset innehåller många tomma celler blir det svårt att hitta den sista raden med data.

Ibland måste du lägga till vissa värden till dina metoder för att koden ska fungera smidigt. Vi lade till radnummer för att hitta den sista cellen. Du måste alltså komma ihåg var ditt dataset började.

Slutsats

Avslutningsvis hoppas jag att den här handledningen har gett dig användbar kunskap om att hitta sista raden med data i ett intervall med hjälp av VBA i Excel. Vi rekommenderar att du lär dig och tillämpar alla dessa instruktioner på ditt dataset. Ladda ner övningsarbetsboken och prova dem själv. Du får också gärna ge feedback i kommentarsfältet. Din värdefulla feedback håller oss motiverade att skapa handledningar som denna.

Glöm inte att besöka vår webbplats Exceldemy.com för olika Excel-relaterade problem och lösningar.

Fortsätt att lära dig nya metoder och fortsätt att växa!

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.