将行组从列格式转换为行格式的列组

Convert groups of rows from column format in groups of columns in rows format

我正在尝试在 VBA 中编写一个宏,以这种方式将列转换为行:

是:

A
B
C

D
E
F

应该是:

A   D
B   E
C   F

有人知道吗?

这应该适合你:

Sub test()
Dim lastRow&, groupSize&, i&, k&
Dim rng As Range

lastRow = Cells(Rows.Count, 1).End(xlUp).Row

groupSize = 13
k = 2 ' start the pasting in the second column

For i = 14 To lastRow
    Set rng = Range(Cells(i, 1), Cells(i + groupSize - 1, 1))
    rng.Cut Range(Cells(1, k), Cells(13, k))
    i = i + 12
    k = k + 1
Next i

End Sub

这是对 BruceWayne 正确答案的修改:

Sub test()
Dim lastRow&, groupSize&, i&, k&
Dim rng As Range

lastRow = Cells(Rows.Count, 1).End(xlUp).Row

groupSize = 13
k = 1 ' start the pasting in the first column
j = 1

For i = 1 To lastRow
    Set rng = Range(Cells(i, 1), Cells(i + groupSize - 1, 1))
    rng.Cut Range(Cells(j, k), Cells(j + 12, k))
    k = k + 1
    i = i + 12
    If k = 14 Then
    k = 1
    j = j + 13
    End If
Next i

End Sub

唯一不同的是,现在数据不是写在一行中,而是写在一组行中。所有学分归功于 BruceWayne。