以行格式在列组中转换列格式的行组

时间:2015-11-12 14:30:17

标签: excel excel-vba rows transpose vba

我正在尝试在VBA中编写宏来将列转换为此样式的行:

它是:

A
B
C

D
E
F

应该是:

A   D
B   E
C   F

有人知道吗?

2 个答案:

答案 0 :(得分:1)

这应该适合你:

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

答案 1 :(得分:1)

这是对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所有。