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列重复,并且在其Rth列中也是一个“2”值,如果Rth列具有其他值,即使所有六列都相同,也不应删除它。
答案 0 :(得分: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,则删除整行!