簡體   English   中英

如果在 excel 2007 vba 的第 R 列行中有 2 個值,則刪除重復的行

[英]Delete the duplicated rows if it had 2 value in its Rth column row in excel 2007 vba

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 列具有其他值,即使所有六列都相同,它也不應該刪除。

我不知道您的其他代碼,所以我無法集成它,但這里有一個 sub(),它將 go 通過您的 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,則刪除整行!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM