2016-07-25 35 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

あなたはdupesを特定し、文字列にそれらを書くためにループする必要があります: あなたGoDupe()サブはこのような何かを見ることができます。あなたが持っているものを使って、どちらが実際に駄目であり、どれが一意であるかを特定する方法はありません。 – Kyle

答えて

1

むしろ、をループ識別し、各重複の入力を求めるよりも、あなたは、単にすべての重複を強調表示し、一度ユーザーを促すことができます。

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 

End Subの

+0

ちょうど1つのこと、私は最初の列(A列)を重複して強調表示し、削除するだけで、他のすべての列は重複した値を持つことがあります。 –

+0

次に、単に 'Cells'ではなく、特定の範囲から' RemoveDuplicates'関数を呼び出す必要があります。例えば。 'Range(" $ A:$ A ")。RemoveDuplicatesカラム:=配列(1)、ヘッダ:= xlNo' – hughg

関連する問題