选择唯一行并将其值复制为转置

时间:2013-12-12 16:18:19

标签: excel excel-vba transpose vba

我正在尝试选择唯一的行并将它们的值复制为差异表中的转置。

我的意思是让VBA代码动态化。

这是一个例子

Raw Excel
x 1
x 2 
x 3
y 4
y 5
z 6

Desired output
x  y  z
1  4  6
2  5
3

1 个答案:

答案 0 :(得分:1)

试试这个

Sub a()
DataRow = 1
DataCol = 1
OutputRow = 1
OutputCol = 4

Application.ScreenUpdating = False
OutputCol = OutputCol - 1
While Cells(DataRow, DataCol).Value <> 0
    Cells(DataRow, DataCol).Select
    ThisValue = Cells(DataRow, DataCol).Value
    If ThisValue <> PrevValue Then
        OutputCol = OutputCol + 1
        MyRow = OutputRow
        Cells(MyRow, OutputCol).Value = Cells(DataRow, DataCol).Value
        MyRow = OutputRow + 1
    End If
    Cells(MyRow, OutputCol).Value = Cells(DataRow, DataCol + 1).Value
    PrevValue = ThisValue
    DataRow = DataRow + 1
    MyRow = MyRow + 1
Wend
Application.ScreenUpdating = True
End Sub