2017-01-24 6 views
0

以下のリストがあります。VBAは対応するより高い値に基づいて重複行を削除します

z LL ST 
1 40 160 
2 40 51 
3 35 77 
4 39 100 
5 34 78 
6 39 89 
7 33 49 
8 31 80 
9 35 101 
10 38 57 
11 32 52 
12 40 84 
13 37 102 
14 40 135 
15 31 55 
16 34 59 
17 40 115 
18 35 62 
19 40 168 
20 39 68 
21 37 67 

LLの重複値を持つ行を削除したいが、最も大きなST値を持つ行を削除したい。たとえば、対応するST = 160のものを除いて、すべてLL = 40が削除されます。重複を削除する方法を見つけましたが、私の問題に固有のコードは見つかりません。助けてくれてありがとう。

+1

ST降順で並べ替え、[LL]列に基づいて[データ]タブの[重複を削除]を使用します。 –

+0

ありがとうございますが、私はVBAコードを使用する必要があります。これははるかに大きなプロジェクトのサンプルです。しかし、私はこれを使用してコードをマクロとして実行することができるかどうかを確認します。 –

+2

上記の手順をvbaに簡単に組み込むことができます。レコーダーを手動で使用し、それを組み込みます。ループと比較よりも速くなります。 –

答えて

0

コードを探している人は、ここをクリックしてください。助けてくれてありがとう。

Sub Macro1() 
' 
' Macro1 Macro 
' 

' 
    Range("A2:M23").Select 
    ActiveWorkbook.Worksheets("Scratchsheet (2)").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Scratchsheet (2)").Sort.SortFields.Add Key:=Range(_ 
     Cells(3, 11), Cells(23, 11)), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ 
     xlSortNormal 
    ActiveWorkbook.Worksheets("Scratchsheet (2)").Sort.SortFields.Add Key:=Range(_ 
     Cells(3, 12), Cells(23, 12)), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ 
     xlSortNormal 
    With ActiveWorkbook.Worksheets("Scratchsheet (2)").Sort 
     .SetRange Range(Cells(2, 1), Cells(23, 12)) 
     .Header = xlYes 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 
    ActiveSheet.Range(Cells(2, 1), Cells(23, 12)).RemoveDuplicates Columns:=11, Header:=xlYes 
End Sub 
関連する問題