Wenn Sie eine Datenliste in Excel importieren, ist es nicht ungewöhnlich, dass in Spalte A viele Daten gespeichert werden. Tatsächlich ist es nicht ungewöhnlich, dass in keiner der anderen Spalten etwas vorhanden ist. (Dies hängt natürlich alles von der Art der Daten ab, die Sie importieren.) Im Rahmen der Arbeit mit den Daten in Excel möchten Sie die Daten möglicherweise so „neu organisieren“, dass sie in mehr Spalten als nur Spalte A angezeigt werden .

Stellen Sie sich als Beispiel vor, Sie hätten Ihre Daten importiert und sie hätten die Zeilen 1 bis 212 der Spalte A belegt. Sie möchten wirklich, dass die Daten die Spalten A bis F belegen, unabhängig davon, wie viele Zeilen für die Daten erforderlich sind. Daher muss A2 nach B1, A3 nach C1, A4, nach D1, A5 nach E1, A6 nach F1 und dann nach A7 nach A2, A8 nach B2 usw. verschoben werden.

Um Daten auf diese Weise neu zu organisieren, können Sie das folgende Makro verwenden.

Wählen Sie die Daten aus, die Sie neu organisieren möchten, und führen Sie das Makro aus. Sie werden gefragt, wie viele Spalten die reorganisierten Daten enthalten sollen, und dann beginnt die Datenverschiebung.

Sub CompressData()

Dim rSource As Range     Dim rTarget As Range     Dim iWriteRow As Integer     Dim iWriteCol As Integer     Dim iColCount As Integer     Dim iTargetCols As Integer     Dim J As Integer

iTargetCols = Val(InputBox("How many columns?"))

If iTargetCols > 1 Then         Set rSource = ActiveSheet.Range(ActiveWindow.Selection.Address)

If rSource.Columns.Count > 1 Then Exit Sub

iWriteRow = rSource.Row + (rSource.Cells.Count / iTargetCols)

iWriteCol = rSource.Column + iTargetCols - 1         Set rTarget = Range(Cells(rSource.Row, rSource.Column), _           Cells(iWriteRow, iWriteCol))



For J = 1 To rSource.Cells.Count             rTarget.Cells(J) = rSource.Cells(J)

If J > (rSource.Cells.Count / iTargetCols) Then _               rSource.Cells(J).Clear         Next J     End If End Sub

Das Makro überträgt Informationen, indem es zwei Bereiche definiert: den Quellbereich, den Sie beim Ausführen des Makros ausgewählt haben, und den Zielbereich, der durch die berechnete Größe basierend auf der Anzahl der gewünschten Spalten definiert wird. Der Quellbereich wird durch das rSource-Variablenobjekt und der Zielbereich durch rTarget dargestellt. Die For …​ Next-Schleife wird verwendet, um die Werte tatsächlich zu übertragen.

_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 (2301) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: