2012-05-10 12 views
1

フレンド、Excel VBA - 行内の重複を削除します

私は数千の行のために繰り返すExcelテーブルを持っています。以下に示す2番目の行のように繰り返すことができる列の3つのカテゴリ

行を介してExcelを実行して行内の重複を削除する方法はありますか。最終的には2番目の表のように見えます以下?

enter image description here

+0

「H&SS GA0141 7/1/2006」はCol 2とCol 3にありますか?サンプルデータのスクリーンショットは間違いなく役に立ちます:) –

+0

r1c1:GS r1c2:GA0202 r1c3:7/1/2006 r2c1:H&SS r2c2:GA0141 r2c3:7/1/2006 r2c4:H&SS r2c5:GA0141 r2c6:7/1/2006年r2c7:H&SS r2c8:GA0141 r2c9:7/1/2006 – dah97765

+0

質問:SEはスクリーンショットをアップロードすることができますか、またはサードパーティのホストにリンクするだけですか? – dah97765

答えて

2

私はわからないが、これは、あなたがしようとしている何ですか?

Option Explicit 

Sub Sample() 
    Dim wsI As Worksheet 
    Dim lastRow As Long, lastCol As Long, i As Long, j As Long 
    Dim sVal1, sVal2, sVal3 

    '~~> Input Sheet 
    Set wsI = Sheets("Sheet1") 

    With wsI 
     lastRow = .Cells.Find(What:="*", After:=.Range("A1"), _ 
        Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, _ 
        SearchDirection:=xlPrevious, MatchCase:=False).Row 

     lastCol = .Cells.Find(What:="*", After:=.Range("A1"), _ 
        Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, _ 
        SearchDirection:=xlPrevious, MatchCase:=False).Column 

     For i = 1 To lastRow 
      sVal1 = .Cells(i, 1).Value 
      sVal2 = .Cells(i, 2).Value 
      sVal3 = .Cells(i, 3).Value 

      For j = 4 To lastCol Step 3 
       If .Cells(i, j).Value = sVal1 And _ 
       .Cells(i, j + 1).Value = sVal2 And _ 
       .Cells(i, j + 2).Value = sVal3 Then 
        .Cells(i, j).ClearContents 
        .Cells(i, j + 1).ClearContents 
        .Cells(i, j + 2).ClearContents 
       End If 
      Next j 
     Next i 
    End With 
End Sub 
+0

正確に私が探していたもの...そして、私がそれに近づく方法よりもはるかにエレガントです。ありがとう! – dah97765

関連する問題