-5

我需要一个循环遍历列(在我的情况下为 E 列)并找到重复项的 Excel 宏。一旦找到重复项,它应该复制第一个重复行的最左边的 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
4

1 回答 1

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
于 2013-08-15T15:54:12.463 回答