2016-07-25 89 views
0

我想從Excel表中刪除重複項,我有一塊代碼,刪除重複沒有任何問題,我想知道如果我可以讓它提示消息框當發現一個副本沿着「這個條目是一個重複的條目」說什麼的時候有什麼建議?這是我到目前爲止:Excel vba MsgBox顯示重複時發現消息

Sub AccessTransfer() 
    Range("A1:F1").Select 
    Selection.Copy 
    Sheets("Sheet2").Select 

    ActiveSheet.Paste 
    ActiveCell.Offset(0, 6).Value = "Oven" 

    Range("A65536").End(xlUp).Offset(1, 0).Select 
    Call GoDupe 
    Sheets("Sheet1").Select 

    Application.CutCopyMode = False 

End Sub 



Sub GoDupe() 

    Cells.RemoveDuplicates Columns:=Array(1), Header:=xlNo 
    Range("A65536").End(xlUp).Offset(1, 0).Select 
End Sub 
+3

你會需要循環識別受騙者,並將其寫入字符串。使用你所擁有的東西,沒有辦法確定哪些實際上是僞造的,哪些是獨特的。 – Kyle

回答

1

而不是通過循環,識別和提示每個副本,你可以簡單地突出顯示所有副本,並提示用戶一次。 你GoDupe()子可能是這個樣子:

Sub GoDupe() 

Cells.FormatConditions.AddUniqueValues 
With Cells.FormatConditions(Cells.FormatConditions.Count) 
    .DupeUnique = xlDuplicate 
    .Interior.Color = RGB(255, 0, 0) 
End With 
If MsgBox("Red highlighted cells are duplicated. OK to remove duplicates?", vbOKCancel) = vbOK Then 
    Cells.RemoveDuplicates Columns:=Array(1), Header:=xlNo 
    Range("A65536").End(xlUp).Offset(1, 0).Select 
End If 
Cells.FormatConditions(Cells.FormatConditions.Count).Delete 

末次

+0

只有一件事,我只想要突出顯示第一列(A列)並刪除重複項,其他所有列有時會有重複值,這沒關係,是否有這樣的功能? –

+0

然後,您應該從特定的範圍調用'RemoveDuplicates'函數,而不是簡單的'Cells'。例如。 'Range(「$ A:$ A」)。RemoveDuplicates Columns:= Array(1),Header:= xlNo' – hughg