Het verkrijgen van de laatste rij van een bepaalde kolom in Excel is eenvoudig te doen met een User-Defined Function in VBA:
Visual Basic
1
2
3
4
5
|
Functie LastRow(wsName As String, Optional columnToCheck As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
LastRow = ws.Cellen(ws.Rijen.Count, columnToCheck).End(xlUp).Row
End Function
|
Er zijn nog twee andere formules, waarmee de laatst gebruikte cel in een bepaalde rij wordt verkregen, afhankelijk van of het om een numerieke of een tekenreeks gaat:
Visual Basic
1
2
|
=IFERROR(MATCH(E1+99,A:A),0)
=IFERROR(MATCH(“zzz”,A:A),0)
|
De eerste krijgt de laatst gebruikte numerieke rij en de tweede geeft de laatst gebruikte niet-numerieke rij. Voor de laatst gebruikte numerieke/niet-numerieke rij kan een unie van deze worden gebruikt:
Visual Basic
1
|
=MAX(IFERROR(MATCH(E1+99,A:A),0),IFERROR(MATCH(“zzz”,A:A),0))
|
Echter, er is een klein probleem – wanneer de laatste cel een fout is, retourneert de MAX()-formule niet de laatste cel. In het onderstaande voorbeeld geeft het 6 terug en niet 7 :
Dus, de vier ultieme formules, die altijd werken voor de laatste “dingen” zijn de volgende:
Om de rijen/kolommen te krijgen:
Laatste rij van kolom A
Visual Basic
1
|
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(A:A)),ROW(A:A)),0)
|
Laatste kolom van de eerste rij
Visual Basic
1
|
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(1:1)),COLUMN(1:1)),0)
|
Om de waarden te krijgen
Laatste rij waarde van kolom A
Visual Basic
1
|
=LOOKUP(2,1/(NOT(ISBLANK(A:A)),A:A)
|
Laatste kolomwaarde van de eerste rij
Visual Basic
1
|
=LOOKUP(2,1/(NOT(ISBLANK(1:1))),1:1)
|
GitHub laatste dingen