我有一个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行,因此即使我的宏无法正常工作,它的运行速度也很慢。我觉得这很困难,我也不知道如何正确地将数据传输到相应的值。我将非常感谢我获得的任何帮助。谢谢! :)