将特定数据从一张纸传输到另一张纸并删除重复数据

时间:2019-10-24 06:44:52

标签: excel vba duplicates

我有一个Excel,其中有两张纸,一张“一张”和一张“两张”。在我的“测试”中,excel表1从A到D有4列。如果A列和B列与新行相同,则宏会删除旧行。在sheet2上,A列具有不同数字的值。我需要一个宏,它将这些值转移到A列对应的数字到D列。我希望我能清楚地解释一下:)这是我的“测试” excel示例。

     One             Two
   A  B  C  D      
1  2  2  2         2 = work
2  3  3  3         3 = fun
3  2  2  2
4  1  1  1

 After macro ----->

       One
    A  B  C  D
 1  3  3  3  fun
 2  2  2  2  work
 3  1  1  1  

现在宏已删除第2行,并将正确的数据传输到D列。

这是我已经尝试过的:(最大的问题是将数据从工作表2传输到工作表1)

Private Sub CommandButton1_Click()

Dim lastrow As Long, erow As Long
lastrow = Worksheets("one").Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To lastrow

Worksheets("two").Cells(i, 1).Copy
erow = Worksheets("two").Cells(Rows.Count, 1).End(xlUp).Row

Worksheets("two, work").Paste Destination:=Worksheets("one").Cells(erow + 1, 5)

Worksheets("two").Cells(i, 2).Copy
Worksheets("two, fun").Paste Destination:=Worksheets("one").Cells(erow + 1, 5)

Next i

With Columns("A:B")
    .Sort key1:=Range("A1"), Order1:=xlAscending, key2:=Range("B1"),   Order2:=xlDescending, Header:=xlGuess
    .RemoveDuplicates Columns:=1, Header:=xlGuess
End With


End Sub

这只是一个测试excel,但是实际上有超过2000行,因此即使我的宏无法正常工作,它的运行速度也很慢。我觉得这很困难,我也不知道如何正确地将数据传输到相应的值。我将非常感谢我获得的任何帮助。谢谢! :)

0 个答案:

没有答案