Static permette di definire una variabile all'interno di una Sub o Function il cui valore non viene perso, esempio:
codice:
Public Function NumeroProgressivo() As Integer
    Static n As Integer

    n = n + 1

    NumeroProgressivo = n
End Function

'chiamando la funzione...
Debug.Print NumeroProgressivo()    '===> 1
Debug.Print NumeroProgressivo()    '===> 2
Debug.Print NumeroProgressivo()    '===> 3
Debug.Print NumeroProgressivo()    '===> 4
...
Personalmente credo sia meglio non abusare di questo tipo di dichiarazioni, spesso nascondono bug di difficile individuazione.