Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA-Ustawienie globalnych zmiennych dla kilku procedur i modułów

blacknigga 11 Paź 2016 11:42 756 5
  • #1 11 Paź 2016 11:42
    blacknigga
    Poziom 13  

    Witam,

    Wiem, że globalne zmienne można ustawić m.in. poprzez

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod
    jednak potem chce ustawić też (wiem, że jest też Public const)
    Kod: VBnet
    Zaloguj się, aby zobaczyć kod
    i mam takich kilka zmiennych i kilka procedur w kilku modulach:) Wyczytałem niedawno coś o Public Property Get, jednak wtedy musze wszystkie zmiennie osobno deklarować i widzę teraz, że przy każdym wywołaniu/odniesieniu się do vb, macro przechodzi przez property get
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod
    Da się ustawić zmienne (Dim i Set) w jednej "procedurze" lub kodzie?
    Raz zrobiłem tak, że miałem osobną procedure "GlobalSettings" i na początku każdej procedury z makrem uruchamiała mi się "GlobalSettings", ale to chyba niezbyt optymalny sposób?
    Krótko mówiąc, jaki jest najbardziej optymalny sposób ustawienia globalnych zmiennych dostępnych w kilku procedurach, które znajdują się w kilku modułach?

    0 5
  • Pomocny post
    #2 11 Paź 2016 15:10
    JRV
    Specjalista - VBA, Excel

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Dodano po 4 [minuty]:

    W przypadku edycji kodu makra, zmienne globalne są anulowane.
    Następnie uruchom makro Workbook_Open

    0
  • #3 11 Paź 2016 15:45
    blacknigga
    Poziom 13  

    Po uruchomieniu kodu workbook.open z GlobalSettings

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    poniższe makro testowe nie działa.
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #4 11 Paź 2016 15:58
    JRV
    Specjalista - VBA, Excel

    Gdzie jest definicja wb ?

    Dodano po 43 [sekundy]:

    czyli
    Public wb As Workbook

    0
  • #5 12 Paź 2016 12:16
    blacknigga
    Poziom 13  

    Jednak działa, źle miałem zdeklarowane Public wb as workbook, chociaż byłem pewny, że już kiedyś tak próbowałem i że taki sposób deklarowania danych nie działa i stąd zacząłem kombinować:)
    Tak samo będzie to działać gdy w pierwszej procedurze uruchomie GlobalSetting zamiast z workbook_open?

    0
  • #6 12 Paź 2016 12:42
    JRV
    Specjalista - VBA, Excel

    blacknigga napisał:
    Tak samo będzie to działać
    W takich przypadkach nawet nie pytaj, ale spróbuj :)

    0