我需要一个循环遍历列的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
答案 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