识别重复并比较价值

时间:2015-03-10 21:24:48

标签: excel-vba vba excel

我需要搜索连续范围内的重复项,如果找到重复项,则需要比较单独范围(类似行)中的值,然后选择较小的值来删除。

很容易告诉它比较重复项和清除那么多列的x-many行。

Dim LR as long
Dim LR = Range("C" & Rows.Count).End(xlUp).Row
Activesheet.Range("$A$1:" & "G" & LR).RemoveDuplicates Columns:=Array(1,2), Header:=xlGuess

但是需要使用像Z:Z这样的范围并将找到的副本(在A& B中)与原始副本进行比较,并查看例如Z3的单元格内容(4)是否大于Z200& #39; s单元格内容(6),删除第3行。

我们的想法是:

Starting Info

To This:

Ending Info

任何和所有帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我以肮脏的方式修好了它。

我用= Counta(E:Z)创建了一个隐藏列(或者你有什么) 所以我接着按顺序排序,首先是案例编号,然后是隐藏列(降序)。这样,当我使用删除重复脚本时,他删除的数据最少。

它对我有用。

 Dim LR As Long
 LR = Range("C" & Rows.Count).End(xlUp).Row
 Range("D2:E2").AutoFill Destination:=Range("D2:E" & LR)
 Range("A2:Z" & LR).Select
 ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:= _
    Range("B2:B" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
    :=xlSortNormal

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:= _
    Range("D2:D" & LR), SortOn:=xlSortOnValues, Order:=xlDescending, _
    DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
    .SetRange Range("A1:AG" & LR)
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
ActiveSheet.Range("$A$1:AG" & LR).RemoveDuplicates Columns:=Array(1, 2),    Header:=xlGuess