Це питання про сферу застосування .
Якщо ви хочете, щоб змінні тривали протягом життя функції, використовуйте Dim
(скорочуючи параметр Dimension ) всередині функції або sub, щоб оголосити змінні:
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
ключовим словом.
Якщо ви будуєте велику програму і відчуваєте необхідність використовувати глобальні змінні, я рекомендую створити окремий модуль саме для ваших глобальних змінних. Це допоможе вам відслідковувати їх в одному місці.