O código funciona bem para mim e não gera erros. Eu mesmo andei por linha a linha usando o depurador e nada de ruim aconteceu.
Como um ponto menor, eu acho a seguinte alternativa muito mais clara para entender:
Sub Example()
Dim n As Variant
On Error Resume Next
For i = 1 To 10
n = 1 / 0 'this WILL cause an error.
If Err.Number <> 0 Then n = 5
Next i
On Error GoTo 0
End Sub
No entanto, isso é apenas uma preferência pessoal.