VBA Laatste rij - Hoe de laatst gebruikte rij in Excel te vinden met behulp van VBA-code?

Inhoudsopgave:

Anonim

Excel VBA Laatste rij

Het vinden van de laatste rij in een kolom is een belangrijk aspect bij het schrijven van macro's en het dynamisch maken daarvan. Omdat we niet liever de celbereiken zo nu en dan bijwerken wanneer we met Excel-celverwijzingen werken. Als coder / ontwikkelaar, zou u altijd de voorkeur geven aan een dynamische code die op alle gegevens kan worden gebruikt en die aan uw eisen voldoet. Bovendien zou het altijd geweldig zijn als u de laatste rij hebt die bekend is met uw gegevens, zodat u de code dynamisch kunt wijzigen volgens uw vereiste.

Ik zal slechts één voorbeeld noemen dat het belang van dynamische code herhaalt.

Stel dat ik gegevens heb zoals hieronder vermeld met de werknemer en hun salaris.

En kijk naar de onderstaande code:

Code:

 Sub Voorbeeld 1 () Bereik ("D2"). Waarde = WorksheetFunction.Sum (Bereik ("B2: B11")) Einde Sub 

Hier drukt deze code de som van de salarissen af ​​voor alle werknemers (cel B2: B11 ) in cel D2 . Zie onderstaande afbeelding:

Wat nu als ik enkele cellen aan deze gegevens toevoeg en deze code opnieuw voer?

Logischerwijs zal de bovenstaande code niet alle 14 rijen uit kolom B samenvatten. Reden hiervoor is het bereik dat we hebben bijgewerkt onder WorksheetFunction (dat is B2: B11). Dit is de reden, een dynamische code die rekening houdt met de laatste gevulde rij, is voor ons belangrijker.

In dit artikel zal ik enkele methoden introduceren die nuttig kunnen zijn bij het achterhalen van de laatste rij voor een gegeven gegevensset met behulp van VBA-code.

Hoe de laatst gebruikte rij in kolom te vinden met behulp van VBA?

Hieronder staan ​​de verschillende voorbeelden met verschillende methoden om de laatst gebruikte rij van een kolom in Excel te vinden met behulp van VBA-code.

U kunt deze VBA-sjabloon voor de laatste rij Excel hier downloaden - VBA-sjabloon voor de laatste rij VBA

Voorbeeld # 1 - Methode Range.End () gebruiken

Nou, deze methode is hetzelfde als het gebruik van de Ctrl + pijl-omlaag in Excel om naar de laatste niet-lege rij te gaan. Volg op soortgelijke regels de onderstaande stappen voor het maken van code in VBA om de laatste niet-lege rij van een kolom in Excel te bereiken.

Stap 1: Definieer een variabele die waarde kan aannemen voor de laatste niet-lege rij van Excel-kolom.

Code:

 Sub Voorbeeld 2 () Dim Last_Row As Long End Sub 

Hier wordt de variabele Last_Row gedefinieerd als LANG om er zeker van te zijn dat deze een willekeurig aantal argumenten kan aannemen.

Stap 2: Gebruik de gedefinieerde variabele om de waarde van de laatste niet-lege rij vast te houden.

Code:

 Sub Voorbeeld 2 () Dim Last_Row As Long Last_Row = End Sub 

Stap 3: Typ de code beginnend met CELLS (Rows.Count voor Last_Row = .

Code:

 Sub Voorbeeld 2 () Dim Last_Row As Long Last_Row = Cellen (Rows.Count End Sub 

Stap 4: Vermeld 1 na een komma in de bovengenoemde code. De waarde numeriek 1 is synoniemen voor de eerste kolom in het Excel-blad.

Code:

 Sub Voorbeeld 2 () Dim Last_Row As Long Last_Row = Cellen (Rows.Count, 1) End Sub 

Met deze code kan VBA het totale aantal (lege + niet-lege) rijen vinden dat aanwezig is in de eerste kolom van het Excel-werkblad. Dit betekent dat met deze code het systeem naar de laatste cel van Excel kan gaan.

Wat als u zich in de laatste cel van de Excel bevindt en naar de laatste niet-lege rij wilt gaan? Je gebruikt Ctrl + pijl-omhoog, toch?

Dezelfde logica die we gaan gebruiken in de volgende coderegel.

Stap 5: Gebruik een combinatie van End- toets en xlUp om naar de laatste niet-lege rij in Excel te gaan.

Code:

 Sub Voorbeeld 2 () Dim Last_Row As Long Last_Row = Cellen (Rows.Count, 1). End (xlUp) End Sub 

Hiermee gaat u naar de laatste niet-lege rij in de Excel. U wilde echter een rijnummer voor hetzelfde.

Stap 6: Gebruik ROW om het rijnummer van de laatste niet-lege rij te krijgen.

Code:

 Sub Voorbeeld 2 () Dim Last_Row As Long Last_Row = Cellen (Rows.Count, 1). End (xlUp). Row End Sub 

Stap 7: Toon de waarde van Last_Row die het laatste niet-lege rijnummer bevat met MsgBox.

Code:

 Sub Voorbeeld 2 () Dim Last_Row As Long Last_Row = Cellen (Rows.Count, 1). End (xlUp) .Row MsgBox Last_Row End Sub 

Stap 8: Voer de code uit met de knop Uitvoeren of door op F5 te drukken en de uitvoer te bekijken.

Output:

Stap 9: Laten we nu één rij verwijderen en kijken of de code een nauwkeurig resultaat geeft of niet. Het zal ons helpen de dynamiek van onze code te controleren.

Voorbeeld # 2 - Gebruik van bereik en speciale cellen

We kunnen ook de eigenschap Range en SepcialCells van VBA gebruiken om de laatste niet-lege rij van het Excel-blad te krijgen.

Volg de onderstaande stappen om de laatste niet-lege rij in Excel te krijgen met behulp van VBA-code:

Stap 1: Definieer een variabele opnieuw als Lang.

Code:

 Sub Voorbeeld 3 () Dim Last_Row As Long End Sub 

Stap 2: Begin met het opslaan van de waarde voor de variabele Last_Row met behulp van de toewijzingsoperator.

Code:

 Sub Voorbeeld 3 () Dim Last_Row As Long Last_Row = End Sub 

Stap 3: Begin met typen ("A: A") .

Code:

 Sub Voorbeeld 3 () Dim Last_Row As Long Last_Row = Bereik ("A: A") End Sub 

Stap 4: Gebruik de SpecialCells-functie om de laatste niet-lege cel te achterhalen.

Code:

 Sub Voorbeeld 3 () Dim Last_Row As Long Last_Row = Bereik ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Deze functie SpecialCells selecteert de laatste cel van uw excel omdat deze tussen haakjes wordt geschreven ( xlCellTypeLastCell maakt het mogelijk om de laatste niet-lege cel van uw excel-sheet te selecteren).

Stap 5: Gebruik nu RIJ om de laatste rij van uw Excel-blad te krijgen.

Code:

 Sub Voorbeeld 3 () Dim Last_Row As Long Last_Row = Bereik ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Dit retourneert de laatste niet-lege rij voor je uit je Excel.

Stap 6: Wijs nu deze waarde van Last_Row toe aan MsgBox zodat we het laatste niet-lege rijnummer in het berichtvak kunnen zien.

Code:

 Sub Voorbeeld 3 () Dim Last_Row As Long Last_Row = Bereik ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Stap 7: Voer de code uit door op F5 te drukken of op de knop Uitvoeren linksboven.

Output:

U kunt zien dat het laatste niet-lege celnummer via MsgBox is uitgezet met verwijzing naar kolom A. Omdat we de kolom A onder Bereikfunctie hebben genoemd bij het definiëren van de variabele formule.

Stap 8: Als we een rij verwijderen en deze formule kunnen uitvoeren. Laten we afwachten wat er gebeurt.

U kunt zien dat het systeem nog steeds het aantal rijen als 14 heeft gegeven. Hoewel ik een rij heb verwijderd en het werkelijke aantal rijen 13 is, heeft het systeem het aantal rijen niet nauwkeurig vastgelegd. Om het werkelijke aantal rijen vast te leggen, moet u het werkblad opslaan en de code opnieuw uitvoeren.

Je kunt nu het werkelijke aantal rijen zien in deze screenshot.

Voorbeeld # 3 - Range.Find gebruiken ()

Volg de onderstaande stappen om de laatste niet-lege rij in Excel te krijgen met behulp van VBA-code:

Stap 1: Definieer een variabele zo lang.

Code:

 Sub Voorbeeld 4 () Dim Last_Row As Long End Sub 

Stap 2: Gebruik nu de volgende code om de laatste niet-lege rij te zien.

Code:

 Subvoorbeeld 4 () 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 

Hier zoekt de FIND-functie naar een eerste niet-lege cel. Asterisk (*) is een wildcard-operator die helpt hetzelfde te achterhalen.

Beginnend bij cel A1 gaat het systeem terug naar de laatste cel van het blad en zoekt het in achterwaartse richting (xlVorige). Het beweegt van rechts naar links (xlByRows) en loopt in hetzelfde blad door alle rijen op dezelfde regels totdat het een niet-lege rij vindt (zie de .ROW aan het einde van de code).

Stap 3: Gebruik MsgBox om de waarde van de laatste niet-lege rij op te slaan en deze als een pop-upvenster te zien.

Code:

 Subvoorbeeld 4 () 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 

Stap 4: Voer de code uit en zie de uitvoer als een pop-upvenster met het laatste niet-lege rijnummer.

Output:

Dingen om te onthouden

  • Einde (voorbeeld 1) kan worden gebruikt om de eerste lege cel / rij of de laatste niet-lege cel / rij in een bepaalde kolom te achterhalen met behulp van VBA-code.
  • Het einde werkt meestal op één kolom. Als u gegevens in bereiken hebt, is het moeilijk om te bepalen welke kolom moet worden gebruikt om de laatste niet-lege rij te achterhalen.
  • Zoeken (Voorbeeld3) werkt op een volledig bereik vanaf het beginpunt en vindt de laatste niet-lege cel / rij in een bepaalde kolom met behulp van VBA-code. Het kan ook worden gebruikt om de laatste niet-lege kolom te achterhalen.

Aanbevolen artikelen

Dit is een handleiding voor VBA Last Row. Hier bespreken we hoe u de laatst gebruikte rij in een bepaalde kolom kunt vinden, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Hoe VBA Kolom invoegen te gebruiken?
  2. Hoe Excel rijen en kolommen te selecteren?
  3. Overzicht van VBA-bereikcellen
  4. Hoe cellen toe te voegen in Excel?