2014-02-09 109 views
1

這可能有點多問,但我想知道以下是否可能。這是基於我最初的問題Copy Range and Paste Values in another Sheet's specific Rangeexcel:根據3列檢查重複行並保留一行

我有一張包含大約12列,其中相同類型的數據被複制到這意味着兩行或更多行可以包含完全相同的數據,但是如果我可以檢查重複它將基於3個特定的列。

我不想爲此任務使用自動篩選或條件格式,因爲工作表可以包含數百到數千行,我希望能夠找到重複項,刪除它們並只保留一個原始項。我也閱讀過關於刪除重複項目的其他帖子,但是到目前爲止還沒有人爲我工作。

數據的範圍是從A到P和向下,並且將識別重複的3列是A(它是數字,ID),B(它是日期)和P(它是文本串)。這些數據來自哪裏,它將始終具有相同的格式,並始終放置在相同的列中,這就是爲什麼如果A,B,P相同,那麼它被認爲是重複的。

感謝您的幫助提前。

+0

因爲我發現的,搜索值(大於,小於,0等),有些則增加了運行宏後,我的報告文件大小爲500%。我嘗試了很多,但沒有看到你剛剛鏈接的那個。 – BlueSun3k1

回答

3

此代碼對我的作品(基於this asnwer由@SiddharthRout lastrow):

Sub test() 

    Dim lastrow As Long 

    With ThisWorkbook.Worksheets("Sheet1") 
     If Application.WorksheetFunction.CountA(.Cells) <> 0 Then 
      lastrow = .Cells.Find(What:="*", _ 
          After:=.Range("A1"), _ 
          Lookat:=xlPart, _ 
          LookIn:=xlFormulas, _ 
          SearchOrder:=xlByRows, _ 
          SearchDirection:=xlPrevious, _ 
          MatchCase:=False).Row 
     Else 
      lastrow = 1 
     End If 

     'Array(1, 2, 16) means 1 - for A, 2 for B and 16 for P columns 
     .Range("A1:P" & lastrow).RemoveDuplicates Columns:=Array(1, 2, 16), _ 
      Header:=xlYes 
    End With 
End Sub 
+1

再一次,謝謝。這完全符合我的需要。你已經找到了一個出色而簡單的解決方案來解決我的每個問題。現在我只需要彩票號碼。 =) – BlueSun3k1