循环以转置动态范围

时间:2013-10-25 18:01:24

标签: excel vba excel-vba

我有按列排列的数据行,需要将数据转置为行。列的长度各不相同,因此我需要动态选择范围,复制,然后粘贴和转置,然后移动到包含数据列的下一行。我能够插入与每组数据下面的列数相等的空白行。 I.E.如果一行填充了3列,则下方将有2个空行。我需要从顶部排列到底部。

A   B   C


D   E   

F       
G   H   I


A       
B       
C       
D       
E       
F       
G       
H       
I

1 个答案:

答案 0 :(得分:0)

如果您选择顶部排列的整个范围并运行以下宏,它将在您选择的下方以所需格式列出数据:

Sub TransposeLoop()
    Dim Rng As Range
    Dim cell As Range
    Set Rng = Selection

    For Each cell In Rng
        If cell.Value <> vbNullString Then
            ActiveSheet.Cells(ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = cell.Value
        End If
    Next cell
End Sub