
Ich brauche Hilfe beim Anwenden einer geeigneten Excel VBA-Do-Schleife oder einer anderen Methode, um Zellinhalte zu kopieren und den nächsten Satz leerer Zellen in jede Zeile einzufügen. Während die Schleife durch jede Zeile läuft, kopiert und fügt sie nur die nächsten leeren Zellen ein und kopiert erneut den Inhalt der nächsten gefüllten Zelle und fügt ihn in die nächsten leeren Zellen ein, bis jede Zeile gefüllt ist. Ich muss dies auf eine Tabelle anwenden, die etwa 5.000 Zeilen enthält. Jede Hilfe wird sehr geschätzt. Die ursprüngliche Tabelle und das erwartete Tabellenergebnis sollten wie folgt aussehen: Die Beispieltabellen
Antwort1
Das Folgende sollte funktionieren. Bitte beachten Sie, dass das Folgende die Tabelle nur mit Werten überschreibt. Wenn Ihre Tabelle also Formeln enthält, gehen diese verloren, da sie mit Werten überschrieben werden.
Sub SuperUserHelp()
Dim TempArray As Variant, x As Long, y As Long
Dim ValueNow As Variant, SheetName As String, TableAddress As String
SheetName = "Sheet1" 'Set your sheet name here
TableAddress = "A1:E5" 'Set your table range here
TempArray = Sheets(SheetName).Range(TableAddress).Value
For x = 1 To UBound(TempArray, 1)
ValueNow = Empty 'new row defaults to
For y = 1 To UBound(TempArray, 2)
If TempArray(x, y) = Empty Then
TempArray(x, y) = ValueNow
Else
ValueNow = TempArray(x, y)
End If
Next y
Next x
Sheets(SheetName).Range(TableAddress).Value = TempArray
End Sub