2016-04-19 4 views
1

Ich arbeite derzeit an Zeilen löschen, wenn bestimmte Wert nicht in dieser Spalte gefunden wird.So wählen Sie eine Spalte basierend auf dem Header-Wert mit VBA

Beispiel Excel-Daten

Sl.No  Content 
1   Apple 
2   Ball 
3   Cat 
4   Ball 
5   Cat 

Und der Code, den ich für sie bin mit ist

Sub Delete() 

Dim startrow As Long 
'starting row number here 
startrow = 2 
' Assuming data to check is in A Column 
Do Until startrow > Cells(Cells.Rows.Count, "A").End(xlUp).Row 
    If Cells(startrow, 2).Value = "Ball" Then 
     Rows(startrow).Delete 
    Else 
     startrow = startrow + 1 
    End If 
Loop 

End Sub 

Der Ausgang dieses Codes

Sl.No  Content 
1   Apple 
3   Cat 
5   Cat 

Dieser Code perfekt funktioniert. Jetzt brauche ich eine kleine Veränderung hier. Ich versuche, die B-Spalte mit der Spaltenüberschrift "Inhalt" auszuwählen und dann die Zeilen zu löschen, die "Ball" enthalten, anstatt die Zellennummer anzugeben.

Bitte helfen Sie mir dabei zu erreichen. TIA

Antwort

2
Sub Delete() 

    Dim startrow As Long 
    Dim rng1 As Range 
    'starting row number here 
    startrow = 2 
    ' Assuming data to check is in A Column 
    Set rng1 = ActiveSheet.UsedRange.Find("Content", , xlValues, xlWhole) 
    If Not rng1 Is Nothing Then 
     Do Until startrow > Cells(Cells.Rows.Count, "A").End(xlUp).Row 
      If Cells(startrow, rng1.Column).Value = "Cat" Then 
       Rows(startrow).Delete 
      Else 
       startrow = startrow + 1 
      End If 
     Loop 
    Else 
     MsgBox "Column Not Found", vbCritical 
    End If 

End Sub 
Verwandte Themen