2017-10-24 11 views
0

ワークシートに102のワークシートがあります。私は各ワークシートを独立して循環させ、の中のの中のワークブック全体(ワークブック全体ではない)を削除したいと思います。ワークブック内の重複する値を1つのワークシート内で削除する

Sub DeleteDuplicates() 
Set ws = ThisWorkbook.Worksheets 

    For Each X In ws 
     X.Range("A:B").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes 
    Next 

End Sub 

私はそれだけではなく、単一のワークシート内、ワークブック内のどこにでも現れる重複を削除していると信じて:

は、私は現在、このコードを持っています。このコードを操作している特定のワークシート内から重複を削除するようにこのコードを制限する方法はありますか?

+1

これはXでのみ動作することを保証します。 – Excelosaurus

+0

コードは確かに実行するときに私が期待するものです。ワークシート全体で重複を削除するのはなぜだと思いますか? – YowE3K

+0

ああ、ありがとう。私は元のデータソースでそれをテストしようとしていましたが、私が興味を持っていたカラムだけを選択するのを忘れていました。フォーミュラはポストされています - 私は間違っていると思わないでください。あなたの応答を感謝します。 – AmandaNicole

答えて

2

これは、ブック内の各ワークシートを繰り返し表示します。 IF文を追加してスキップする必要がある場合は、ワークシートを指定できます。

Public Sub DeleteDuplicates() 

    Dim ws as Worksheet 
    Dim wb as Workbook 

    Set wb = ThisWorkbook 

    For Each ws In wb.Worksheets 
     ws.Range("A:B").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes 
    Next ws 

End Sub 
+2

wsはコード内のワークシートとして宣言されていますので、これは失敗します。Set ws = ThisWorkbook.Worksheetsまた、ThisWorkbookとActiveWorkbookを混ぜると思います。 – QHarr

+0

Active/Thisブックの良いキャッチ!私はその変更を行った。乾杯 – tanstaafl1988

関連する問題