Werkbladen Navigeren
Veeg om het menu te tonen
Echte gegevens hebben geen label dat aangeeft waar ze eindigen. Het hardcoderen van Range("A1:I5") werkt niet meer zodra iemand een zesde order toevoegt — daarom moet je het werkblad vragen waar de gegevens eindigen.
De laatste rij vinden
De meest gebruikte code in deze hele cursus:
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Lees dit van rechts naar links: begin helemaal onderaan kolom A (ws.Rows.Count), spring omhoog (End(xlUp)) tot je de eerste bezette cel tegenkomt, en geef het rijnummer terug. Dit werkt ongeacht het aantal orders.
De laatste kolom vinden
Werkt op dezelfde manier, maar dan horizontaal:
Dim lastCol As Long
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
UsedRange
Geeft het volledige rechthoekige gebied van het werkblad weer dat ooit gegevens heeft bevat — handig voor een snelle controle, maar gebruik het met voorzichtigheid: het onthoudt cellen die eerder gegevens hadden, zelfs nadat je hun inhoud hebt verwijderd, waardoor het je daadwerkelijke gegevensbereik kan overschatten.
Debug.Print ws.UsedRange.Address ' e.g. $A$1:$I$6
Debug.Print ws.UsedRange.Rows.Count ' 6
CurrentRegion
Meestal het betere hulpmiddel: breidt zich uit vanuit één cel naar het aaneengesloten gegevensblok eromheen en stopt bij de eerste lege rij of kolom — komt exact overeen met een nette tabel zoals Orders:
Dim tableRange As Range
Set tableRange = ws.Range("A1").CurrentRegion
Debug.Print tableRange.Address ' $A$1:$I$6
Debug.Print tableRange.Rows.Count - 1 ' 5 — subtract 1 to exclude the header
Taak
- Schrijf een
Subdie de laatste rij vindt met deEnd(xlUp)-methode en deze afdrukt in het Directvenster. - Zoek in dezelfde
Subde laatste rij op een tweede manier metCurrentRegion.Rows.Counten druk deze ook af — controleer of ze overeenkomen. - Voeg handmatig een zesde order toe op rij 7 van het werkblad, voer je macro opnieuw uit en controleer of beide methoden nu 7 rapporteren zonder enige codewijzigingen:
1. De laatste rij vinden met End(xlUp)
- Begin helemaal onderaan kolom A en spring omhoog — hetzelfde patroon als in hoofdstuk 3, sectie "De laatste rij vinden".
- Gebruik
Debug.Printom het resultaat te tonen in het Direct-venster (Ctrl+G).
2. Op een tweede manier vinden met CurrentRegion
CurrentRegionbreidt uit vanaf één startcel (probeerRange("A1")) tot het volledige aaneengesloten blok..Rows.Countop die regio telt ook de koprij mee — let op de opmerking in het hoofdstuk over het aftrekken van 1 als je alleen datarijen wilt. Omdat deze taak alleen vraagt om de twee methoden te vergelijken, print eerst het ruwe aantal en redeneer daarna over de koprij.
3. Een zesde rij toevoegen en opnieuw uitvoeren
- Geen codewijzigingen nodig — typ gewoon een nieuwe order direct in rij 7 van het werkblad en voer dezelfde
Subopnieuw uit.
Sub CompareLastRowMethods()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Orders")
Dim lastRowMethod1 As Long
lastRowMethod1 = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Debug.Print "End(xlUp): " & lastRowMethod1
Dim lastRowMethod2 As Long
lastRowMethod2 = ws.Range("A1").CurrentRegion.Rows.Count
Debug.Print "CurrentRegion: " & lastRowMethod2
End Sub
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.