【问题标题】:Identify Duplicates and Compare Value识别重复并比较价值
【发布时间】:2015-03-12 01:54:20
【问题描述】:

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

告诉它比较重复并清除这么多列的 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 的单元格内容 (6) ,并删除第 3 行。

这个想法是从这个出发的:

到这里:

我们将不胜感激。谢谢!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我以一种肮脏的方式修复了它。

    我用 =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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      相关资源
      最近更新 更多