【问题标题】:Delete the duplicated rows if it had 2 value in its Rth column row in excel 2007 vba如果在 excel 2007 vba 的第 R 列行中有 2 个值,则删除重复的行
【发布时间】:2011-10-27 19:23:45
【问题描述】:
ActiveSheet.Range(cells("$2", "$A"), cells("$" & CStr(mowz), "$Q"))._
RemoveDuplicates                         
Columns:=Array(1, 2, 6, 7, 8, 9), Header:=xlYes 

这是宏,我记录并使用它来删除 excel 2007 vba 中的重复项。但我有一个新任务要解决。那就是我必须删除重复的行,当且仅当它的“Rth”列具有价值2,否则即使它是重复的也不应该删除它

有没有办法在重复行宏中添加条件?请告诉我。并接受任何建议

在我的工作表中,我有 16 列,如果列 1、2、6、7、8、9 具有相同的值,则上述宏将删除重复项,但问题是,如果它具有全部 6 列,则必须将其删除列重复,并且在其第 R 列中还有一个“2”值,如果第 R 列具有其他值,即使所有六列都相同,它也不应该删除。

【问题讨论】:

    标签: vba excel excel-2007


    【解决方案1】:

    我不知道你的其他代码,所以我无法整合它,但这里有一个 sub() 将通过你的 R 列,如果它在里面找到“2”,它将删除整行.您可以随时通过添加“Call Delete2s”将其添加到您的其他代码中(“call”是可选的,但我倾向于包含它)。

    Sub Delete2s()
    Range(Cells(1, "R"), Cells(Rows.Count, "R").End(xlUp)).Select
    
    Dim lastRow As Long
    lastRow = ActiveSheet.UsedRange.Rows.Count
    
    For i = lastRow To 1 Step -1
        If Selection.Rows(i).Value = 2 Then
            Selection.Rows(i).EntireRow.Delete
        End If
    Next 
    End Sub
    

    它是如何工作的:它找到 R 列中使用的最后一个单元格(你可以调整它)然后向后循环(你需要在删除单元格时这样做,否则你会搞乱循环)。如果值为2,则删除整行!

    【讨论】:

    • 对不起,这不是我想要的,让我再次更新我的问题以更清楚
    • 感谢您更新您的帖子 - 很遗憾,我无法提供帮助。 :(
    • 仍然感谢您的回答!
    猜你喜欢
    • 2016-05-25
    • 2011-12-26
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多