如果在EXCEL 2007 VBA中的第r列行中有2个值,则删除重复行 [英] Delete the duplicated rows if it had 2 value in its Rth column row in excel 2007 vba

查看:22
本文介绍了如果在EXCEL 2007 VBA中的第r列行中有2个值,则删除重复行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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列有其他值,即使所有6列都相同,它也不应该删除它。

推荐答案

我不知道您的其他代码,所以我不能集成它,但这里有一个Sub(),它将遍历您的R列,如果它在其中找到"2",它将删除整行。您总是可以通过添加"Call Delete2"将其添加到其他代码中("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,则删除整行!

这篇关于如果在EXCEL 2007 VBA中的第r列行中有2个值,则删除重复行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆