Excel宏以查找列的重复值并复制相邻单元格

时间:2013-08-15 15:10:32

标签: excel vba excel-vba

我需要一个循环遍历列的Excel宏(在我的例子中是列E)并找到重复项。一旦找到副本,它应该复制第一个重复行的最左边2个单元格并将其粘贴到第二个重复行中。

以下是我所说的具体例子:

这是宏之前的工作表:

     A      B      C      D      E
1    A11    B11    C11    D11    Text1
2    A22    B22    C22    D22    Text2
3    A33    B33    C33    D33    Text3
4
5
6
7                                Text3
8                                Text2

它应该检测到E列中存在重复并复制重复行的第一次迭代中最左边的2个单元格并将它们粘贴到第二次迭代中。即它应该从Text3的行复制A33和B33并将其粘贴到后一个Text3的行中。与Text2相同。因此,工作表应该在宏运行后显示:

     A      B      C      D      E
1    A11    B11    C11    D11    Text1
2    A22    B22    C22    D22    Text2
3    A33    B33    C33    D33    Text3
4
5
6
7    A33    B33                  Text3
8    A22    B22                  Text2

1 个答案:

答案 0 :(得分:0)

Sub main()
Dim hold As New Collection
For Each celli In Columns(5).Cells
On Error GoTo raa
If Not celli.Value = Empty Then
hold.Add Item:=celli.Row, key:="" & celli.Value
End If
Next celli
On Error Resume Next
raa:
Range("a1:b1").Offset(celli.Row - 1, 0).Value = Range("a1:b1").Offset(hold(celli.Value) - 1, 0).Value
Resume Next
End Sub