2009-03-12 4 views
0

Ich versuche, Zeilen von Werten in eine Spalte in Excel zu verschieben. Die Transponierfunktion funktioniert gut, bewegt sich jedoch nur um jeweils eine Zeile. Ich möchte ein Makro erhalten, das 173 Datenzeilen in drei Spalten in eine Spalte konvertiert. Bitte beachten Sie das Beispiel unten. Vielen Dank im Voraus für jede Hilfe.Schreiben eines Makros zur wiederholten Verwendung der Transponierungsfunktion

Reihen:

 
98,058 98,058 98,314 
82,362 82,684 83,326 
93,410 93,479 93,761 

Spalten:

 
98,058 
98,058 
98,314 
82,362 
82,684 
83,326 
93410 
93479 
93761 
+0

Ist dies ein einmaliger Vorgang, der wiederholt mit Datensätzen unterschiedlicher Größe durchgeführt werden muss? – Lunatik

Antwort

1

Nachfolgend werden die Daten aus dem Current von A1 in eine Anordnung und Einfügen in eine Spalte, beginnend in A5 laden.

Ich gehe davon aus, dass die Daten numerisch, zusammenhängend sind und dass dies eine einmalige Übung ist, anstatt eine Übung, die auf Datensätzen unterschiedlicher Größe wiederholt werden muss. Wenn Ihre Daten nicht zusammenhängend oder nicht durch leere Zellen gebunden sind, können Sie stattdessen den Bereich fest codieren.

Private Sub transposeRows() 
Dim inputRange As Variant 
Dim myArray() As Long 
Dim x As Long 
Dim testCell As Range 

'Get the range of data to copy' 
Set inputRange = Range("A1").CurrentRegion 

'Resize array to fit' 
ReDim myArray(inputRange.Count - 1) 

'Fill up array with data' 
For Each testCell In inputRange 
    myArray(x) = testCell 
    x = x + 1 
Next testCell 

'Fill destination range' 
Range("A5:A" & UBound(myArray) + 5) = WorksheetFunction.Transpose(myArray) 

End Sub 
Verwandte Themen