Uma variável VBA estática retém seu valor mesmo quando o procedimento termina.
Declaração de uma variável estática
Você declara uma variável estática usando a palavra-chave estática conforme mostrado abaixo:
123456789 | Sub DeclaringAStaticVariable ()Static myVariable As IntegerMsgBox myVariablemyVariable = myVariable + 2Intervalo ("A1"). Valor = myVariableEnd Sub |
A primeira vez que você pressiona F5, obtém uma caixa de mensagem mostrando o valor inicial de myVariable, que é 0. O valor de 2 é colocado na célula A1.
Se você pressionar F5 novamente imediatamente depois, obterá a seguinte caixa de mensagem mostrando o valor de myVariable que é 2 e o valor de 4, colocado em sua planilha na célula A1.
Como você pode ver que a variável está retendo seu valor mesmo quando o procedimento Sub termina, se você usou a palavra-chave Dim em vez da palavra-chave Static para declarar a variável, a caixa de mensagem sempre mostraria o valor 0. Além disso, o resultado na célula A1, seria 2, sempre que você clicasse em F5. Uma vez que a variável não reteria seu valor após o término do Subprocedimento.