Avatar billede flash_84 Nybegynder
25. marts 2008 - 11:02 Der er 9 kommentarer og
1 løsning

VBA: Globale variable

Hej!

Jeg sidder og laver noget VBA kode Excel.

Jeg har to formularer og et modul.

Formular '1' er en slags hovedformular. I denne kan man trykke på en knap, som åbner formular '2'. I '2' indtaster man en værdi, som gemmes i en variabel i modulet. Her er den erklæret som: Global gstrScreenWidth As String.
Herefter trykkes på en knap som lukker formularen (jeg bruger .Hide).
I '1' kan man trykke på en knap, som skriver de indtastede væriderne i begge formularer til en .ini fil.

Her kommer problemet...

De værdier der indtastes i '2' bliver ikke skrevet til filen. Det ser ud som om værdierne går tabt når '2' lukkes. Er det dét der sker? Og i så fald, hvordan løser jeg det? Variablerne skal vel erklæres Global i et modul, hvis jeg vil ha' adgang til dem fra alle formularer? Eller har jeg fuldstændig misforstået noget?

/flash
Avatar billede sorenstrom Nybegynder
25. marts 2008 - 11:13 #1
Prøv med Public gstrScreenWidth As String.
Erklær variablen i et modul, og ikke i en Form
Avatar billede flash_84 Nybegynder
25. marts 2008 - 11:30 #2
Variablen er erklæret i modulet. Nu har jeg så prøvet med public som du sagde. Men værdien bliver ikke overført til den globale variabel.

Tekstboks: txtScreenWidth
Global variabel: Public gstrScreenWidth As String

I '2' gør jeg følgende, får at gemme den indtastede værdi i den globale variabel:

Private Sub cmdOK_Click()

    gstrScreenWidth = txtScreenWidth
    Form2.Hide

End Sub
Avatar billede supertekst Ekspert
25. marts 2008 - 13:16 #3
Prøv at sætte modulnavnet foran - f.eks.: Module1.gstrScreenWidth = txtScreenWidth
Avatar billede learningvba Nybegynder
01. april 2008 - 08:35 #4
Brug evt.
Option Explicit
øverst både koden til din Userform og i dit modul.
Det kan reducere slåfejls-erklæringer :-)

Held og lykke.
Avatar billede flash_84 Nybegynder
01. april 2008 - 13:12 #5
Option Explicit har jeg allerede stiftet bekendtskab med. Det er en god ting :)
Men ellers tak for oplysningen.


Til "sorenstrom" og "supertekst":

Jeg manglede både "public" og modulnavnet. Der er dermed point til jer begge. Smid nogle svar, og de vil blive honoreret.


Tak for god support, til alle der har svaret :)
Avatar billede supertekst Ekspert
01. april 2008 - 13:22 #6
Selv tak - her er et svar
Avatar billede supertekst Ekspert
23. april 2008 - 23:41 #7
???
Avatar billede flash_84 Nybegynder
24. april 2008 - 17:48 #8
Undskyld det sene svar. Jeg har været væk et stykke tid, og er lige kommet tilbage.

Tak for hjælpen :)
Avatar billede supertekst Ekspert
06. maj 2008 - 23:16 #9
???? :(
Avatar billede flash_84 Nybegynder
07. maj 2008 - 18:21 #10
Jeg ved ikke lige hvad der sker for mig. Er vist lidt ved siden af mig selv...

Men det er ikke nogen undskyldning! Værsgo', og tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester