Я написав наступний код:
Function find_results_idle()
Public iRaw As Integer
Public iColumn As Integer
iRaw = 1
iColumn = 1
І отримую повідомлення про помилку:
"недопустимий атрибут в підкласі або функції"
Підкажіть, що я зробив не так?
Спробував використати Global
замість Public
, але отримав ту ж саму проблему.
Спробував оголосити саму функцію як `Public, але це теж нічого не дало.
Що потрібно зробити, щоб створити глобальну змінну?
Йдеться про scope.
Якщо ви хочете, щоб змінні існували лише протягом життя функції, використовуйте 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
Змінна global (як зазначав 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
.
Якщо ви створюєте велику програму і відчуваєте потребу у використанні глобальних змінних, я б рекомендував створити окремий модуль тільки для ваших глобальних змінних. Це допоможе вам відслідковувати їх в одному місці.