vba根据更高的相应值

时间:2017-01-24 15:26:53

标签: excel vba excel-vba duplicates

我有以下清单。

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之外的所有LL = 40将被移除。我找到了删除重复项的方法,但我找不到更具体问题的代码。谢谢你的帮助。

1 个答案:

答案 0 :(得分: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