James hat einige Daten in einem Arbeitsblatt, das in einer Reihe von Zeilen enthalten ist. Eine der Spalten in den Daten enthält Zellen mit mehreren Zeilen pro Zelle. (Die Daten in der Zelle wurden durch Drücken von Alt + Eingabetaste zwischen Elementen in Zeilen getrennt.) James möchte diese Daten in mehrere Zeilen aufteilen. Wenn sich beispielsweise drei Datenzeilen in einer einzelnen Zelle in der Zeile befanden, sollten die Daten in dieser Zelle in drei Zeilen aufgeteilt werden.

Excel bietet eine praktische Möglichkeit, Daten mit dem Werkzeug Text in Spalten in separate Spalten aufzuteilen. Dies kann verwendet werden, um die Daten basierend auf dem Vorhandensein des ASCII 10-Zeichens aufzuteilen. Dies wird von Excel eingefügt, wenn Sie Alt + Eingabetaste drücken. Das Problem ist, dass die Daten zwar erfolgreich in separate Spalten aufgeteilt werden, jedoch nicht in separate Zeilen, wie von James angefordert.

Das bedeutet, dass die Lösung für dieses Problem die Verwendung eines Makros beinhalten muss. Ein Ansatz wird im folgenden Code gezeigt. In diesem Beispiel geht das Makro davon aus, dass Sie alles im Arbeitsblatt „erweitern“ möchten und dass die Daten im Arbeitsblatt in Zeile 1 beginnen.

Sub CellSplitter()

Dim Temp As Variant     Dim CText As String     Dim J As Integer     Dim K As Integer     Dim L As Integer     Dim iColumn As Integer     Dim lNumCols As Long     Dim lNumRows As Long

iColumn = 4

Set wksSource = ActiveSheet     Set wksNew = Worksheets.Add

iTargetRow = 0     With wksSource         lNumCols = Cells(1,Columns.Count).End(xlToLeft).Column         lNumRows = Cells(Rows.Count,1).End(xlUp).Row         For J = 1 To lNumRows             CText = .Cells(J, iColumn).Value             Temp = Split(CText, Chr(10))

For K = 0 To UBound(Temp)

iTargetRow = iTargetRow + 1                 For L = 1 to lNumCols                     If L <> iColumn Then                         wksNew.Cells(iTargetRow, L) _                           = .Cells(J, L)

Else                         wksNew.Cells(iTargetRow, L) _                           = Temp(K)

End If                 Next L             Next K         Next J     End With End Sub

Beachten Sie, dass Sie zum Ausführen des Makros mithilfe der iColumn-Variablen die Spalte angeben müssen, die die zu teilenden Zellen enthält.

Wie hier geschrieben, teilt das Makro die Informationen in der vierten Spalte auf. Darüber hinaus werden die getrennten Versionen der Zellen in einem neuen Arbeitsblatt gespeichert, sodass das ursprüngliche Arbeitsblatt überhaupt nicht betroffen ist.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (9396) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: