Jeg har brugt Static
variabler i fortiden – lokale variabler, der bevarer deres værdi mellem opkald – men vidste du, at hele funktioner og underordnede også kan markeres som statiske?
I tilfælde af en Static Function
eller Static Sub
, hver lokal variabel i rutinen opfører sig, som om den var erklæret med Static
søgeord individuelt. Tjek følgende note fra dokumentationen til Static Statement:
Det Statiske erklæringen og Static søgeord ligner hinanden, men bruges til forskellige effekter. Hvis du erklærer en procedure ved at bruge Static søgeord (som i Static Sub CountSales ()
), tildeles lagerpladsen for alle lokale variabler i proceduren én gang, og værdien af variablerne bevares i hele den tid, programmet kører. For ikke-statiske procedurer tildeles lagerplads til variabler, hver gang proceduren kaldes og frigives, når proceduren afsluttes. Den Statiske sætning bruges til at erklære specifikke variabler inden for ikke-statiske procedurer for at bevare deres værdi, så længe programmet kører.
Helt ærligt, jeg bruger sjældent det statiske nøgleord til individuelle variabler. Jeg kæmper for at se, hvornår jeg vil bruge denne funktion til en hel funktion eller sub. Når det er sagt, er det vigtigt at vide, at det er muligt. Du ved aldrig, hvornår du kan støde på en eller anden kode i naturen, der bruger denne funktion...
Tip o' the hat til Jan Karel Pieterse
Æren for denne saftige bid af information går til Jan Karel Pieterse, en Excel MVP og font af VBA viden og trivia. Jeg lærte først, at dette var en mulighed fra et af hans LinkedIn-indlæg:
Du lærer noget nyt hver dag!