2017-08-15 1 views
0

Mit VBA würde ich gerne wissen, wie man eine Teilstring innerhalb der Spalte A mit einer Liste von Wörtern aus einem anderen Arbeitsblatt suchen, wenn eine Übereinstimmung ist Ich möchte dann die Zelle löschen.Wie suche ich einen Teilstring mit Werten aus einer anderen Spalte und lösche Zeile, Excel VBA

Momentan werden nur Zellen mit einer EXAKTEN Übereinstimmung gelöscht. Ich möchte nicht Groß- und Kleinschreibung beachten und Teilstrings finden.

Private Sub RemoveBusinessesButton_Click_OLD2() 
    Dim Firstrow As Long 
    Dim lastrow As Long 
    Dim Lrow As Long 
    Dim CalcMode As Long 
    Dim ViewMode As Long 

    With Application 
     CalcMode = .Calculation 
     .Calculation = xlCalculationManual 
     .ScreenUpdating = False 
    End With 

    'We use the ActiveSheet but you can replace this with 
    'Sheets("MySheet")if you want 
    With ActiveSheet 

     'We select the sheet so we can change the window view 
     .Select 

     'If you are in Page Break Preview Or Page Layout view go 
     'back to normal view, we do this for speed 
     ViewMode = ActiveWindow.View 
     ActiveWindow.View = xlNormalView 

     'Turn off Page Breaks, we do this for speed 
     .DisplayPageBreaks = False 

     'Set the first and last row to loop through 
     Firstrow = .UsedRange.Cells(1).Row 
     lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row 

     'We loop from Lastrow to Firstrow (bottom to top) 
     For Lrow = lastrow To Firstrow Step -1 

      'We check the values in the A column in this example 
      With .Cells(Lrow, "A") 

       If Not IsError(.Value) Then 

        If Not IsError(Application.Match(.Value, _ 
        Sheets("BUSINESS_KEYWORDS").Range("A1:A683"), 0)) Then .EntireRow.Delete 
        'This will delete each row with the Value "ron" 
        'in Column A, case sensitive. 

       End If 

      End With 

     Next Lrow 

    End With 

    ActiveWindow.View = ViewMode 
    With Application 
     .ScreenUpdating = True 
     .Calculation = CalcMode 
    End With 

End Sub 

Vielen Dank im Voraus

Antwort

1

Wenn Sie eine andere, anstatt dass sie genau das gleiche wie die anderen dann diese Funktion verwenden, wenn eine Zeichenfolge enthält überprüfen möchten: Vertretung

If InStr(1, StringToBeSearched, StringtoFind, vbTextCompare) > 0 Then 
    Do xyz 
End If 

Instr gibt eine Ganzzahl das Zeichen, bei dem StringToFind in StringToBeSearched erscheint und 0 zurückgibt, wenn es nicht gefunden werden kann.

Verwandte Themen