Excel VBA代码将数据从行转换到列
我在A列中有50000行数据。 我需要将每6行数据转置到6列。 例如,来自A1:A6的数据必须转换为B1:G1。 A7:A14的数据也必须转换为B2:G2。 我很感激任何人都可以为此提供VBA代码。
我在A栏中的数据如下所示:
Col A 1 2 3 4 5 6 7 8 9 10 11 12
转置数据必须如下所示在列B到列G中:
Columns BCDEFG 1 2 3 4 5 6 7 8 9 10 11 12
从我身边的另外的变形:
Sub TransposeRows2() Dim i&, z&, x& i = Cells(Rows.Count, "A").End(xlUp).Row z = 1: x = 1 While z <= i Range("B" & x).Resize(, 6) = _ WorksheetFunction.Transpose(Range("A" & z).Resize(6)) z = z + 6: x = x + 1 Wend End Sub
testing:
尝试这个:
Sub TransposeRows() Dim rng As Range Dim i As Long Set rng = Range("A1") While rng.Value <> "" i = i + 1 rng.Resize(6).Copy Range("B" & i).PasteSpecial Transpose:=True Set rng = rng.Offset(6) Wend Application.CutCopyMode = False End Sub
从这里得到这个。
你不需要这个macros。 在B1中input:
=OFFSET($A$1,COLUMNS($A:A)-1+(ROWS($1:1)-1)*6,0)
然后复制下来:
在葡萄牙语Excel中,“加里的学生”的公式为4列,而不是6列,成为:
=DESLOCAMENTO($A$1;COLS($A:A)-1+(LINS($1:1)-1)*4;0)