在Excel VBA中转换数据段

我需要一些帮助来在某种循环中将多个数据块“转置”到工作表的另一个区域。 目前数据如下:

Rob Dave John Peter Jane Lily Mel Amy 1 4 7 3 2 5 8 6 blue green brown black purple orange yellow white apple pear grape lemon banana kiwi mango strawberry 

我想知道是否有人可能知道一些相关的VBA代码,可以让我把它转换成以下内容:

 Rob Dave John Peter 1 4 7 3 blue green brown black apple pear grape lemon Jane Lily Mel Amy 2 5 8 6 purple orange yellow white banana kiwi mango strawberry 

这只是两组水平排列的数据,我想转移到垂直块。 实际的工作簿包含更多的数据块,因此可能需要某种循环。 提前致谢。

将variablesnBlocks设置为4 x 4块的总数,然后运行:

 Sub BlockMover() Dim nBlocks As Long, N As Long, i As Long Dim r1 As Range, r2 As Range nBlocks = 3 For i = 2 To nBlocks N = Cells(Rows.Count, "A").End(xlUp).Row + 1 Set r1 = Range(Cells(1, 4 * (i - 1) + 1), Cells(4, 4 * (i - 1) + 4)) Set r2 = Range("A" & N) r1.Copy r2 r1.Clear Next i End Sub 

我会使用内置函数Transpose() 。