如何将数据格式化为列中的行

时间:2014-07-20 08:44:52

标签: excel

我有一张excel表,需要格式化数据enter image description here

我需要在不同的工作表中格式化这样的数据 enter image description here

注意 - 这是我为您的理解而创建的一个小样本

1 个答案:

答案 0 :(得分:0)

我的测试宏在下面。如果你想使用它,你只需要重命名你的工作表 - “DataSheet”用于包含数据的工作表和“ResultSheet”,其中将存储结果。

Sub Reformat()
Dim letter As String
Dim iRow As Integer
Dim rng As Excel.Range

    Sheets("ResultSheet").Range("A1:A" & Range("A1").End(xlDown).Row).Value = Range("A1:A" & Range("A1").End(xlDown).Row).Value

    Sheets("ResultSheet").Select
    Range("A1:A" & Range("A1").End(xlDown).Row).RemoveDuplicates Columns:=1, Header:=xlNo
    Set rng = Range("A1:A" & Range("A1").End(xlDown).Row)

    For i = 1 To Sheets("DataSheet").Range("A1").End(xlDown).Row
        letter = Sheets("DataSheet").Range("A" & i).Value

        iRow = WorksheetFunction.Match(letter, rng)

        If Range("B" & iRow).Value = "" Then
            Range("B" & iRow).Value = Sheets("DataSheet").Range("B" & i).Value
        Else
            Range("A" & iRow).End(xlToRight).Offset(0, 1).Value = Sheets("DataSheet").Range("B" & i).Value
        End If

    Next i
End Sub