Więcej
Jak zadeklarować zmienną globalną w VBA?
Napisałem następujący kod:
Function find_results_idle()
Public iRaw As Integer
Public iColumn As Integer
iRaw = 1
iColumn = 1
I dostaję komunikat o błędzie:
"invalid attribute in Sub or Function"
Czy wiesz co zrobiłem źle?
Próbowałem użyć Global
zamiast Public
, ale dostałem ten sam problem.
Próbowałem zadeklarować samą funkcję jako Public
, ale to też nic nie dało.
Co muszę zrobić, aby utworzyć zmienną globalną?
127
3
Musisz zadeklarować zmienne poza funkcją:
To jest pytanie o zakres.
Jeśli chcesz, aby zmienne trwały tylko przez cały czas trwania funkcji, użyj
Dim
(skrót od Dimension) wewnątrz funkcji lub sub, aby zadeklarować zmienne:Zmienna globalna (jak zauważył SLaks) jest deklarowana poza funkcją za pomocą słowa kluczowego
Public
. Zmienna ta będzie dostępna przez cały czas działania aplikacji. W przypadku Excela oznacza to, że zmienne będą dostępne tak długo, jak długo otwarty jest ten konkretny skoroszyt Excela.Możesz również mieć zmienne, które są dostępne tylko w obrębie konkretnego modułu (lub klasy) poprzez zadeklarowanie ich ze słowem kluczowym
Private
.Jeśli budujesz dużą aplikację i czujesz potrzebę używania zmiennych globalnych, polecam stworzenie osobnego modułu tylko dla zmiennych globalnych. Powinno to pomóc Ci śledzić je w jednym miejscu.
Aby użyć zmiennych globalnych, wstaw nowy moduł z interfejsu projektu VBA i zadeklaruj zmienne używając
Global
.