If speed were a concern then I would make the point that as much as ScreenUpdating will slow code, given Deletion of Rows is a Volatile action if you have Volatile functions you're best served forcing Calculation to Manual prior to implementation of Deletion Loop and restoring Calc to it's former setting on completion ... and if you do that you may as well do all three, ie: screenupdate, calculation & events.

An example below:

Public Sub Example()
Dim xlCalc As XlCalculation, tblRows2 As Long, i As Long
On Error GoTo Handler
tblRows2 = Cells(Rows.Count, "A").End(xlUp).Row
With Application
    xlCalc = .Calculation
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
    .EnableEvents = False
    For i = tblRows2 To 3 Step -1
        If Cells(i, "A") = 1 Then Rows(i).Delete
    Next i
ExitPoint:
    .Calculation = xlCalc
    .ScreenUpdating = True
    .EnableEvents = True
End With
Exit Sub

Handler:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Resume ExitPoint

End Sub