2017-03-01 79 views
5

Yinelenen verilerim var (sütun "c") ve "D" sütunundaki sayıları olan satırı silmek istiyorum. ancak sadece bu kullanarak kod im olan enter image description hereYinelenen satırların tümünü koşullarla silme ve

resimde görülen, ama ve "D" verilerle satırı silmek nasıl bilmiyorum olarak tek tarihleri ​​ile yinelenenler, için yinelenen

olduğunu Set wS = ThisWorkbook.Sheets("Sheet1") da sayfanın adının
Sub del_doops() 
    Dim RowNdx As Long 
    Dim RowNdx2 As Long 

    For RowNdx = Range("A1:f1").End(xlDown).Row To 2 Step -1 
     For RowNdx2 = RowNdx - 1 To 1 Step -1 'Begin at one above RowNdx 

      If Cells(RowNdx, "b").Value = Cells(RowNdx2, "b").Value And _ 
       Cells(RowNdx, "C").Value = Cells(RowNdx2, "C").Value And _ 
       Cells(RowNdx, "E").Value = Cells(RowNdx2, "E").Value And _ 
       Cells(RowNdx, "F").Value <> Cells(RowNdx2, "F").Value Then 
       Rows(RowNdx2).Delete 'this is where i need help 
      End If 

     Next RowNdx2 
    Next RowNdx 

End Sub 
+0

Neden hat 17 (olduğu ikinci grubunuzda 20 Şubat silindi? –

+0

tarihler değişir, ama boşver. mr R3uK bana yardım etti. ama yine de teşekkürler –

cevap

2

Değişim Sheet1:

Sub del_doops() 
Dim RowNdx As Long 
Dim RowNdx2 As Long 
Dim wS As Worksheet 

Set wS = ThisWorkbook.Sheets("Sheet1") 
With wS 
    For RowNdx = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1 
     For RowNdx2 = RowNdx - 1 To 1 Step -1 'Begin at one above RowNdx 
      If .Cells(RowNdx, "B").Value = .Cells(RowNdx2, "B").Value And _ 
        .Cells(RowNdx, "C").Value = .Cells(RowNdx2, "C").Value And _ 
        .Cells(RowNdx, "E").Value = .Cells(RowNdx2, "E").Value And _ 
        .Cells(RowNdx, "F").Value <> .Cells(RowNdx2, "F").Value Then 
       If .Cells(RowNdx, "D").Value <> vbNullString Then 
        .Rows(RowNdx).Delete 
       Else 
        If .Cells(RowNdx2, "D").Value = vbNullString Then .Rows(RowNdx2).Delete 
       End If 
      End If 
     Next RowNdx2 
    Next RowNdx 
End With 'wS 
End Sub 
+0

Şaşırtıcı, saf deha –

+0

@aj_bk: Memnuniyet ederim! ;) Sadece sizin için bir şey, '' '' '' '' ('' '' '' '' '(' '' '' '' '' '' ('' '' '' '' '' '(' '' '' '' '' '' '' '' '' ''' ile dikkat edin ve' 'wS' ile teşekkürler '' ve çalışmakta olduğunuz sayfayı doğru bir şekilde göndermenin en kolay yolu!) – R3uK

+0

tamam, teşekkür ederim. :) –

2
Sub del_doops() 
Dim RowNdx As Long 
Dim RowNdx2 As Long 
For RowNdx = Range("A1:f1").End(xlDown).Row To 2 Step -1 
    For RowNdx2 = RowNdx - 1 To 1 Step -1 'Begin at one above RowNdx 
     If Cells(RowNdx, "B").Value = Cells(RowNdx2, "B").Value And _ 
     Cells(RowNdx, "C").Value = Cells(RowNdx2, "C").Value And _ 
     Cells(RowNdx, "E").Value = Cells(RowNdx2, "E").Value And _ 
     Cells(RowNdx, "F").Value = Cells(RowNdx2, "F").Value Then 
      If Cells(RowNdx, "D").Value = vbNullString And _ 
      Cells(RowNdx2, "D").Value <> vbNullString Then 
       Rows(RowNdx2).Delete 
      Else 
       Rows(RowNdx).Delete 
      End If 
     End If 
    Next RowNdx2 
Next RowNdx 
End Sub