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)