Text zwei Zeilen unter LETZTEM Eintrag einfügen Excel VBA?

...komplette Frage anzeigen

1 Antwort

Die letzte Zeile einer Spalte lässt sich leicht bestimmen, die letzte Zeile über alle Spalten schwieriger.

Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Value = "Mein Text"

Aber aufpassen: "letzter Eintrag kann auch der in einer anderen Spalte sein1 Wenn Deine längste Spalte nicht die genannte (hier A) ist (selten), wird das ignoriert. (UsedRange.rows + 2 oder Activesheet.Specialcells(xllastcell).row + 2 sind da etwas spezifischer.

1
@Iamiam

UsedRange hat das gleiche Problem + den Nachteil, dass der Bereich zusammenhängen muss.

Füll mal testweise A1, A2, B3 und D5.

SpecialCells scheint gut zu funktionieren. Syntaktisch funktioniert es bei mir mit Range("A1").SpecialCells(xllastcell).row.
_______________

Man kann auch versuchen, mit der WorksheetFunction zu Anzahl2 zu arbeiten. Ist aber nicht so elegant wie SpecialCells.

1
@Suboptimierer

Bin der Sache nochmal nachgegangen: mit

Debug.Print ActiveSheet.UsedRange.Rows.Count
'bzw ... + 2

funktioniert es schon (auch mit nicht zusammenhängenden Bereichen), aber mit Entf/del gelöschte Zellen werden weiter gezählt, erst wenn man auch die Stile in den Zeilen unterhalb des letzten verbliebenen Eintrags  löscht (die man selbst  gar nicht gesetzt hat) -oder die gesamten Zeilen- wird wieder die tatsächlich letzte gefüllte Zeile gefunden

Ich war auch der Meinung, wenn man Used range im Zusammenhang mit einer Zelle verwendet, wird nur der zusammenhängende Bereich drumrum betrachtet (wobei ich die Sache mit den Stilen jetzt nicht nochmal überprüft habe), ich kriege aber dafür im Moment keine Syntax hin, die überhaupt funktionieren würde.

1

Was möchtest Du wissen?