Die letzte Zeile einer bestimmten Spalte in Excel zu ermitteln, ist einfach mit einer benutzerdefinierten Funktion in VBA möglich:
Visual Basic
1
2
3
4
5
|
Function LastRow(wsName As String, Optional columnToCheck As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
LastRow = ws.Cells(ws.Rows.Count, columnToCheck).End(xlUp).Row
End Function
|
Es gibt noch zwei weitere Formeln, die die zuletzt verwendete Zelle in einer gegebenen Zeile ermitteln würden, je nachdem, ob es sich um eine numerische oder eine Zeichenfolge handelt:
Visual Basic
1
2
|
=IFERROR(MATCH(E1+99,A:A),0)
=IFERROR(MATCH(„zzz“,A:A),0)
|
Das erste liefert die zuletzt verwendete numerische Zeile und das zweite die zuletzt verwendete nicht-numerische Zeile. Für die zuletzt verwendete numerische/nicht-numerische Zeile könnte eine Vereinigung dieser verwendet werden:
Visual Basic
1
|
=MAX(IFERROR(MATCH(E1+99,A:A),0),IFERROR(MATCH(„zzz“,A:A),0))
|
Es gibt jedoch ein kleines Problem – wenn die letzte Zelle ein Fehler ist, gibt die MAX()-Formel nicht die letzte Zelle zurück. Im folgenden Beispiel liefert sie 6 und nicht 7 :
Die vier ultimativen Formeln, die immer für die letzten „Dinge“ funktionieren, sind also die folgenden:
Zur Ermittlung der Zeilen/Spalten:
Letzte Zeile der Spalte A
Visual Basic
1
|
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(A:A)),ROW(A:A)),0)
|
Letzte Spalte der ersten Zeile
Visual Basic
1
|
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(1:1))),COLUMN(1:1)),0)
|
Werte ermitteln
Letzte Zeile Wert der Spalte A
Visual Basic
1
|
=LOOKUP(2,1/(NOT(ISBLANK(A:A))),A:A)
|
Letzte Spalte Wert der ersten Zeile
Visual Basic
1
|
=LOOKUP(2,1/(NOT(ISBLANK(1:1))),1:1)
|
GitHub letzte Dinge