Excel VBA - Nächste Leere Zelle finden?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Teste mal ausführlich:

Sub Test()
Dim rngZiel As Range
Dim i As Integer

Worksheets("A").Range("A1:A10").Copy
Do
Set rngZiel = Worksheets("B").Cells(Rows.Count, 1).End(xlUp).Offset(-i, 0)

If rngZiel.Address = "$A$1" Then
  rngZiel.Offset(0, 0).PasteSpecial xlPasteValues
  Exit Sub
End If

If rngZiel <> "" Then Exit Do

i = i + 1
Loop

rngZiel.Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False

End Sub

Klappt es?

P.S.: Das A1 musste ich abfangen, weil er die Zelle komischerweise nicht als "" erkennt. Keine Ahnung warum.

Gibt auch vielleicht elegantere Lösungen, aber klappe sollte es. Oder?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
Stickylapp 
Fragesteller
 28.09.2022, 22:58

Hallo, funktioniert einwandfrei! Vielen Dank für die umfangreiche Antwort!

0

Jede Zelle Einzeln kopieren und vorher den Inhalt auf "" prüfen.

Cell(Zeile,Spalte).Formula

gibt die Formel als String zurück (mit "=" als erstem Zeichen bei "echter" Formel, ansonsten den Wert, der in der Zelle steht)

Oder habe ich dich verkehrt herum verstanden?

Wenn die gefüllten Zellen zusammenhängend sind (ohne Lücke):

Wenn ich in A1 bis A3 Zahlen bzw. Formeln stehen habe und in A4 bis A10 teils überhaupt nichts, teils Formeln mit dem Ergebnis "", dann erhalte ich im Direktfenster Folgendes:

set rg = Range("A1:A10")
?rg.Rows.Count - WorksheetFunction.CountIf(rg,"")
 3