Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Luck Dragon: MárkaLánc
- talmida: My Art II.
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- btz: Internet fejlesztés országosan!
- hcl: Olympus E-PL1 nyomozás
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Elektromos rásegítésű kerékpárok
-
LOGOUT
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
Topikgazda
válasz
ppapp44
#37415
üzenetére
Szia!
"Most is deklarálva van mind a workkbook-on és a modul1-ben (sőt kísérletként visszaraktam a modul2-be és formra is (teljesen feleslegesen)), de így is működik."
Ugye azt tudod, hogy a három-négy különböző helyen deklarált ugyanazon nevű publikus változó NEM UGYANAZ, hanem 3-4 különböző változó, mindegyiket a Modulnév.Változónév formulával tudod elérni - KÜLÖN-KÜLÖN - és más más értékük lehet!
Természetesen ennek is meg lehet a maga célja, jelen esetben azonban inkább csak zavart okoz szerintem.Én semmiképpen nem javaslom.
Üdv.
-
Fferi50
Topikgazda
válasz
ppapp44
#37413
üzenetére
Szia!
Szerintem az volt a baj, hogy minden modulban stb. definiáltad a változót. Csak egy helyen deklaráld és utána arra az egyre hivatkozz. Különben honnan tudná a VBA, hogy melyiket akarod... ha pedig nincs előtte modulnév, akkor az aktuális eljárásban magának deklarálja, ha nincs Option Explicit.
a javított verziót.
Üdv.
-
ppapp44
csendes tag
válasz
ppapp44
#37393
üzenetére
A korábban definiált public változóim működnek (modul hivatkozás nélkül), de a ma felvett egyszerűen nem. Már cserélgettem a nevet, a tipust (as string, as variant)a definiálás helyét (Thisworkbook, userform, modul). Használtam Feri hivatkozását "modul2.változó", valóban "userform10.muszak", de így sem látom máshol (msgbox muszak) csak a userform-on belül. (Egyébként ez valóban jó ötlet.)
Hogyan tudom ellenőrizni, hogy a VB milyen típusnak tart egy változót?
Létezhet darabszámi korlátja a (global) változóknak????
Előre is köszi Péter -
Fferi50
Topikgazda
válasz
ppapp44
#37393
üzenetére
Szia!
"de a változó nem kap értéket. Olyan mintha nem válna globálissá sehogy sem a userform-on"
A userform kódlapján definiált változó csak akkor és addig él, amíg a form a memóriában van! Tehát betöltés előtt és Unload után már nem érhető el, akkor sem, ha Public.
Ezért ezeket a változókat is célszerű általános modulban deklarálni és a userform kódjában értéket adni nekik.Üdv.
-
Fferi50
Topikgazda
válasz
ppapp44
#37391
üzenetére
Szia!
A publikus változókra a Modulnév.Változónév szintaxissal hivatkozhatsz.
Pl. Thisworkbook.Ezavaltozo = "akarmi" vagy Module1.Valtozo=5
Ezt akkor is tanácsos betartani, ha éppen az adott modulon vagy formon belül vagy mert ugyanazon név előfordulhat eljáráson belül is.
Érdemes átnézned a VBA help változók élettartamára vonatkozó leírását.Üdv.
Új hozzászólás Aktív témák
Hirdetés
- 27% - ASUS VivoBook S15 OLED! Snapdragon X Elite / 16GB DDR5 / 1TB NVMe Notebook!
- Asus laptop E1504F Ryzen 3
- Bomba ár! Lenovo X1 Carbon 7th - i5-8365U I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14400F 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Fferi50