Excel - En makro til at overføre data fra rækker til kolonner
Problem
Dataene er nu i nedenstående format1 2 39 15 16 20 25
1
Dette skal komme i dette format
12
3
9
15
16
20
25
1
Opløsning
Forudsætninger:- 1. Data starter fra række 1 og skal altid kopieres til kolonne A
- 2. Rækker kan indsættes uden forvrængning af data
Sub TransposeSpecial ()Dim lMaxRows Så lange 'maks rækker i arket
Dim lThisRow Så lang række bliver behandlet
Dim iMaxCol As Integer 'maks. Brugt kolonne i rækken, der behandles
lMaxRows = Cells (Rows.Count, "A"). Slut (xlUp) .Row
lThisRow = 1 'start fra række 1
Gør mens lThisRow <lMaxRows
iMaxCol = celler (lThisRow, Columns.Count) .End (xlToLeft) .Søjle
Hvis (iMaxCol> 1) Så
Rækker (lThisRow + 1 & ":" & lThisRow + iMaxCol - 1) .Insert
Range (celler (lThisRow, 2), celler (lThisRow, iMaxCol)). Kopier
Range ("A" & lThisRow + 1) .Vælg
Selection.PasteSpecial Paste: = xlPasteAll, Operation: = xlNone, SkipBlanks: = False, Transpose: = True
Område (celler (lThisRow, 2), celler (lThisRow, iMaxCol)). Ryd
lThisRow = lThisRow + iMaxCol - 1
lMaxRows = Cells (Rows.Count, "A"). Slut (xlUp) .Row
Afslut Hvis
lThisRow = lThisRow + 1
Loop
Slutdel