2017-02-06 70 views
0

如何一次刪除所有列中的單個列中的重複值?如何一次刪除多列中的重複值

如果我選擇在Excel中Remove Duplicates工具,選擇多列,它假定我對面列尋找重複

我想要刪除個別列中的重複項,但我不想單獨單擊每個列。

  • 例如,假設我有一個包含500列的電子表格。 我想刪除1列(「A」)的所有重複的值,然後刪除所有重複列在第2欄(「B」)等至第500

我」什麼ve試過:

  1. 記錄宏。結果如下:

    ActiveWindow.ScrollColumn = 1 
    Columns("A:A").Select 
    Application.CutCopyMode = False 
    ActiveSheet.Range("$A$1:$A$582").RemoveDuplicates Columns:=1, Header:=xlYes 
    

    正如您所看到的,對於某些反應,它會自動選擇列「A」。我不知道如何一般地選擇我選擇的列的字母。 SOOO ...

  2. 我試過如下:

    Col = Split(ActiveCell(1).Address(1, 0), "$")(0) 
    Application.CutCopyMode = False 
    ActiveSheet.Range("Col1:Col1581").RemoveDuplicates Columns:=1, Header:=xlYes 
    

    但它也不起作用。

我該怎麼做呢?


我使用的MS Excel 2010(專業增強版)

+0

你試過了什麼?應該是一個非常簡單的宏 - 只需打開宏錄製器,從A,B刪除重複項,然後停止錄製。然後,你應該有一個很好的框架如何做到這一點。查看「通過工作表中的列循環」並查看您可以執行的操作。然後,如果您仍然陷入困境,我們很樂意幫助您完成代碼。 – BruceWayne

+0

@BruceWayne我更新了這個問題,以反映我所嘗試過的。簡單的錄製宏不起作用。 – theforestecologist

回答

2

要簡單的通過列循環,並從該列中刪除重複的,說A通過Z,你可以這樣做:

Sub removeDups() 
Dim col As Range 
For Each col In Range("A:Z").Columns 
    With col 
     .RemoveDuplicates Columns:=1, Header:=xlYes 
    End With 
Next col 
End Sub 

您可以根據需要調整它,無論設置的範圍等於您的選擇,還是將範圍擴大到​​。