Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Globaali muuttuja VBA & Excel

Harrastekoodari [08.07.2026 10:41:26]

#

Hei

Käytän Visual basic koodia excelistä. Koodissa on kolme moduulia. Haluasin määrittää ja antaa globaalille muuttujalle arvon (merkkijono="mjonoteksti") ennenkuin moduuleissa olevia koodeja suoritetaan, siten että se näkyy kaikissa moduuleissa.

Nyt olen antanut moduulin Module1 sisällä globaalille muuttujalle arvon ja homma toimii. Mutta jos suoritan aluksi moduulin Module2 niin siellä globaalilla muuttujlla ei ole arvoa...

neosofta [08.07.2026 12:15:30]

#

Määrittele Globaali muuttuja missä tahansa moduulissa General osiossa tyyliin: Global muuttujaninimi As muuttujantyyppi, vaikkapa Global merkkijono As String niin se toimii missä tahansa toisessa moduulissa. Jos haluat, että sen arvoksi tallennnetaan esim. "mjonotesti" niin se pitää tehdä esim. aliohjelmassa ennen kuin muuta koodia suoritetaan:
Sub Auto_Open() ' suoritetaan automaattisesti kun Excel projekti avataan
merkkijono = "mjonotesti"
End Sub
Tämän jälkeen voit käyttää sitä mistä tahansa muusta moduulista käsin esim. MsgBox merkkijono, tai muuttaa sen arvoa esim. merkkijono = "jokinmuumerkkijono"
Jos taas haluat asettaa Globaalin vakion jonka arvoa ei voi muuttaa niin teet sen tyyliin Global Const merkkijono = "mjonotesti"

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta