Это вопрос об объеме .
Если вы хотите, чтобы переменные прослужили только время жизни функции, используйте Dim
(сокращение от Dimension ) внутри функции или подпрограммы для объявления переменных:
Function AddSomeNumbers() As Integer
Dim intA As Integer
Dim intB As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are no longer available since the function ended
Глобальная переменная (как SLaks указал) объявлена вне функции , используя Public
ключевое слово. Эта переменная будет доступна в течение всего срока службы вашего запущенного приложения. В случае Excel это означает, что переменные будут доступны, пока открыта конкретная книга Excel.
Public intA As Integer
Private intB As Integer
Function AddSomeNumbers() As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are still both available. However, because intA is public, '
'it can also be referenced from code in other modules. Because intB is private,'
'it will be hidden from other modules.
Вы также можете иметь переменные, которые доступны только в определенном модуле (или классе), объявив их с помощью Private
ключевого слова.
Если вы создаете большое приложение и чувствуете необходимость использовать глобальные переменные, я бы рекомендовал создать отдельный модуль только для ваших глобальных переменных. Это должно помочь вам отслеживать их в одном месте.