This should be a but faster overall since it only deletes once on each sheet, deleting all the found rows at the same time. Also, it will only evaluate cells in the Grade Level column that have an entry in them, even if there are blanks in the middle of the dataset, it will get them all.
Option Explicit
Sub Del_Seniors()
Dim ws As Worksheet, col As Long
Dim delRNG As Range, cell As Range
On Error Resume Next
For Each ws In Worksheets
col = ws.Rows(1).Find("Grade Level", LookIn:=xlValues, LookAt:=xlPart).Column
If col > 0 Then
For Each cell In ws.Columns(col).SpecialCells(xlConstants) 'or xlFormulas
If cell > "F" Then
If delRNG Is Nothing Then
Set delRNG = cell
Else
Set delRNG = Union(delRNG, cell)
End If
End If
Next cell
If Not delRNG Is Nothing Then
delRNG.EntireRow.Delete xlShiftUp
Set delRNG = Nothing
End If
Else
MsgBox "Grade level column not found on sheet " & ws.Name & ".", vbOKOnly, "Del_Seniors"
End If
Next ws
End Sub
Bookmarks