
Ich habe Datenzeilen gleicher Länge, z. B. A1:A5, B1:B5, C1:C5 usw. Ich möchte diese in eine einzelne Spalte einfügen, z. B. D1:D5, D6:D10, D11:D15 usw. Es gibt keine Überschriften oder Zeilenkennungen. Ich denke, dass die Verwendung von INDIRECT mit einer Kombination aus ROW- und COLUMN-Werten funktionieren sollte, aber ich kann anscheinend nicht die richtige Kombination finden.
Antwort1
Antwort2
Dadurch werden Spaltenüberschriften ignoriert und die Daten aus den ursprünglichen Zellen nicht gelöscht. Abhängig von Ihrem Arbeitsblatt müssen Sie möglicherweise die Werte für die Spalten ändern.
Sub Macro1()
Const firstRowWithData = 2 ' assumes labels in row 1
Dim anyWS As Worksheet
Dim copyRange As Range
Dim CP As Integer
For Each anyWS In ThisWorkbook.Worksheets
For CP = Range("B1").Column To Range("D1").Column
Set copyRange = anyWS.Range(anyWS.Cells(2, CP).Address & ":" & _
anyWS.Cells(Rows.Count, CP).End(xlUp).Address)
copyRange.Copy anyWS.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
Next
Next
End Sub
Vor
A Header B Header C Header
a b c
a b c
a b c
nach
A Header B Header C Header
a b c
a b c
a b c
b
b
b
c
c
c
Löschen Sie dann die ursprünglichen Spalten manuell.