Hello

I am currently using this script which prompts a dialog box and deletes the rows based on the users input. I need to alter it to do the opposite - i want it to KEEP the rows based on user input and delete all non matches. Any help is appreciated:

Sub test() 
     
    Dim MyRange As Range, DelRange As Range, C As Range 
    Dim MatchString As String, SearchColumn As String, ActiveColumn As String 
    Dim FirstAddress As String, NullCheck As String 
    Dim AC 
     
     'Extract active column as text
    AC = Split(ActiveCell.EntireColumn.Address(, False), ":") 
    ActiveColumn = AC(0) 
     
    SearchColumn = InputBox("Enter which column you would like to filter- press Cancel to exit", "Row Delete Code", ActiveColumn) 
     
    On Error Resume Next 
    Set MyRange = Columns(SearchColumn) 
    On Error Goto 0 
     
     'If an invalid range is entered then exit
    If MyRange Is Nothing Then Exit Sub 
     
    MatchString = InputBox("What are you filtering?", "Row Delete Code", ActiveCell.Value) 
    If MatchString = "" Then 
        NullCheck = InputBox("Do you really want to delete rows with empty cells?" & vbNewLine & vbNewLine & _ 
        "Type Yes to do so, no to cancel", "Caution", "No") 
        If NullCheck <> "Yes" Then Exit Sub 
    End If 
     
    Application.ScreenUpdating = False 
     
     'to match the WHOLE text string
     'Set C = MyRange.Find(What:=MatchString, After:=MyRange.Cells(1), LookIn:=xlValues, Lookat:=xlWhole)
     'to match a PARTIAL text string use this line
    Set C = MyRange.Find(What:=MatchString, After:=MyRange.Cells(1), LookIn:=xlValues, Lookat:=xlPart) 
     'to match the case and of a WHOLE text string
     'Set C = MyRange.Find(What:=MatchString, After:=MyRange.Cells(1), LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=True)
     
    If Not C Is Nothing Then 
        Set DelRange = C 
        FirstAddress = C.Address 
        Do 
            Set C = MyRange.FindNext(C) 
            Set DelRange = Union(DelRange, C) 
        Loop While FirstAddress <> C.Address 
    End If 
     
     'If there are valid matches then delete the rows
    If Not DelRange Is Nothing Then DelRange.EntireRow.Delete 
     
    Application.ScreenUpdating = True 
     
End Sub