Excel 2010宏转置非相邻单元格

时间:2015-02-02 19:20:08

标签: excel transpose

我目前正在将数据从列转换为另一个电子表格中的一行。我开始使用"记录宏"功能,但我遇到了麻烦。我需要宏来逐列复制数据并将其转换为相应的行,相隔15行。每个文档有100个条目。例如;文档1中的P4 - P23需要转换为文档2中的M217 - AF217。Q4 - Q23需要转换为M232 - AF 232,直到行1501。

1 个答案:

答案 0 :(得分:0)

您可以使用此简单子转置范围。

只需将源和目的地作为范围:

Sub TransposeRange(SourceRange As Range, DestinationRange As Range)
    SourceRange.Copy
    DestinationRange.PasteSpecial Transpose:=True
End Sub


'Example:
Sub MoveRange()
    Call TransposeRange(Range("P4:P24"), Range("M232"))
End Sub

'Transpose columns 1-10 and put them row by row at column O
Sub MoveColumns()
    For x = 1 To 10
        Call TransposeRange(Intersect(UsedRange, Cells(1, x).EntireColumn), Cells(x, 15))
    Next x
End Sub

结果:

Result