从列到行的Excel数据

时间:2017-08-10 07:43:33

标签: excel vba excel-vba row multiple-columns

我的数据如下图所示:

enter image description here

我需要(使用宏)排列数据,以便ELEVATION \ AZIMUTH之后的每​​一行都在第一行,如图所示:

enter image description here

我有很多像这样的数据行。也许任何人都可以提供帮助?

2 个答案:

答案 0 :(得分:2)

这也可以在不使用宏的情况下完成。 我假设您的最后一列,其中数据是第一列,行号是11.您想要在第一列之后填充第11行中的所有单元格,即J11,K11 ......,其值低于I11

你可以这样做,粘贴在J11中 J11 = INDEX($ I $ 11:$ I $ 1000,COLUMN(B1),1) 在整行中拖动公式,您应该得到所需的输出

答案 1 :(得分:2)

未经测试。你可以尝试一下。以下内容也可以用差异方式编写。

  Sub test1()
        Dim LastRow, DataCount, temp  As Double
        i = 1
        LastRow = 1

        Do While LastRow <> 0
            Range("A" & i).Select
            If ActiveCell.Value = "ELEVATION\AZIMUTH" Then
                'Cut all three row and paste
                DataCount = Application.WorksheetFunction.CountA(Range(i & ":" & i))
                Range("A" & ActiveCell.Row + 1, "I" & ActiveCell.Row + 1).Cut ActiveCell.Offset(0, DataCount)
                Range("A" & ActiveCell.Row + 2, "I" & ActiveCell.Row + 2).Cut ActiveCell.Offset(0, DataCount * 2)
                Range("A" & ActiveCell.Row + 3, "I" & ActiveCell.Row + 3).Cut ActiveCell.Offset(0, DataCount * 3)
            Else
                LastRow = Application.WorksheetFunction.CountA(Range("A" & i, "A" & i + 10))
            End If
            i = i + 1
        Loop

    End Sub