Excel 2010宏用于转置非相邻单元格

Excel 2010宏用于转置非相邻单元格,excel,transpose,Excel,Transpose,我目前正在一次一个地将数据从一列转换到另一个电子表格中的一行。我开始使用“录制宏”功能,但遇到了问题。我需要宏一列一列地复制数据,并将其转置到相应的行中,间隔15行。每个文档有100个条目。例如;文件1中的P4-P23需要转换为文件2中的M217-AF217。Q4-Q23需要转换到M232-AF 232,最多转换到第1501行。您可以使用此简单的子对象来转换范围 只需将源和目标作为一个范围: Sub TransposeRange(SourceRange As Range, Destination

我目前正在一次一个地将数据从一列转换到另一个电子表格中的一行。我开始使用“录制宏”功能,但遇到了问题。我需要宏一列一列地复制数据,并将其转置到相应的行中,间隔15行。每个文档有100个条目。例如;文件1中的P4-P23需要转换为文件2中的M217-AF217。Q4-Q23需要转换到M232-AF 232,最多转换到第1501行。

您可以使用此简单的子对象来转换范围

只需将源和目标作为一个范围:

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
结果:


只需将其正常转置,然后使用宏添加空行,不要过于复杂当我使用record macro功能时,它只为录制时填充的空白单元格写入宏。我很难让代码在整个文档中运行。