2009-03-12 9 views
0

J'essaie de déplacer des lignes de valeurs dans une colonne dans Excel. La fonction de transposition fonctionne bien, mais ne bouge qu'une rangée à la fois. Je voudrais obtenir une macro qui convertira 173 lignes de données sur trois colonnes dans une colonne. S'il vous plaît voir l'exemple ci-dessous. Merci d'avance pour toute aide.Ecriture d'une macro pour utiliser la fonction de transposition à plusieurs reprises

Rangées:

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

Colonnes:

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

Est-ce une opération ponctuelle, ou quelque chose qui pourrait devoir être fait à plusieurs reprises avec des ensembles de données de différentes tailles? – Lunatik

Répondre

1

Ce qui suit va charger les données de la CurrentRegion de A1 dans un tableau et le coller dans une colonne, à partir de A5.

Je suppose que les données sont numériques, contiguës et qu'il s'agit d'une opération ponctuelle plutôt que d'un exercice qui pourrait devoir être répété sur des ensembles de données de différentes tailles. Si vos données ne sont pas contiguës, ou ne sont pas liées par des cellules vides, alors vous pouvez coder la plage à la place.

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 
Questions connexes