Как да декларирам глобална променлива във VBA?
Написах следния код:
Function find_results_idle()
Public iRaw As Integer
Public iColumn As Integer
iRaw = 1
iColumn = 1
И получавам съобщението за грешка:
"invalid attribute in Sub or Function"
Знаете ли какво съм направил погрешно?
Опитах се да използвам Global
вместо Public
, но се получи същият проблем.
Опитах се да декларирам самата функция като Public
, но и това не помогна.
Какво трябва да направя, за да създам глобалната променлива?
127
3
Трябва да декларирате променливите извън функцията:
Това е въпрос за scope.
Ако искате променливите да продължат само през целия живот на функцията, използвайте
Dim
(съкращение от Dimension) вътре във функцията или подфункцията, за да декларирате променливите:Една глобална променлива (както посочи SLaks) се декларира извън функцията, като се използва ключовата дума
Public
. Тази променлива ще бъде достъпна през целия живот на вашето работещо приложение. В случая на Excel това означава, че променливите ще бъдат достъпни, докато е отворена конкретната работна книга на Excel.Можете също така да имате променливи, които са достъпни само в рамките на определен модул (или клас), като ги декларирате с ключовата дума
Private
.Ако изграждате голямо приложение и чувствате необходимост да използвате глобални променливи, бих ви препоръчал да създадете отделен модул само за вашите глобални променливи. Това би ви помогнало да ги следите на едно място.
За да използвате глобални променливи, вмъкнете нов модул от потребителския интерфейс на проекта VBA и декларирайте променливи с помощта на
Global
.