-
Fototrend
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
újonc
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
- Mozilla Firefox
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Bambu Lab 3D nyomtatók
- Andras-G: Az internet veszélyei [2. rész] - Facebook Marketpalce
- Cisco vizsgák (CCNA, CCNP, CCIE)
- Yettel topik
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Allegro vélemények - tapasztalatok
- Luck Dragon: Asszociációs játék. :)
- Energiaital topic
- További aktív témák...
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- The Elder Scrolls Online Imperial Collector s Edition
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- PC Game Pass előfizetés
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Fferi50