Статическая переменная VBA сохраняет свое значение даже после завершения процедуры.
Объявление статической переменной
Вы объявляете статическую переменную с помощью ключевого слова Static, как показано ниже:
123456789 | Sub DeclaringAStaticVariable ()Статическая переменная myVariable как целое числоMsgBox myVariablemyVariable = myVariable + 2Диапазон ("A1"). Значение = myVariableКонец подписки |
При первом нажатии клавиши F5 появляется окно сообщения, в котором отображается начальное значение myVariable, равное 0. Значение 2 помещается в ячейку A1.
Если сразу после этого снова нажать клавишу F5, вы получите следующее окно сообщения, в котором отображается значение myVariable, равное 2, и значение 4, помещенное на лист в ячейку A1.
Как вы можете видеть, переменная сохраняет свое значение даже после завершения подпроцедуры, если вы использовали ключевое слово Dim вместо ключевого слова Static для объявления переменной, в окне сообщения всегда будет отображаться значение 0. Кроме того, результат в ячейке A1, будет 2, каждый раз, когда вы нажимаете F5. Поскольку переменная не сохранит свое значение после завершения подпроцедуры.