-
PROHARDVER!
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
m.zmrzlina #41894 üzenetére
Szia!
Változók tekintetében nincs igazság, csak ajánlások. A VBA önmagában nem követeli meg a változók első használat előtti deklarációját sem: A változó egyszerűen létrejön, amennyiben egy értékadó utasítást adtál a változónév használatával. Pl. x=5 automatikusan létrehozza az x változót. Ez egyik oldalról nézve roppant praktikus, mert nem kell foglalkozni vele, hogy él-e a változód, hiszen az utasítással létrejön. De: Ezt a változót ebben az esetben nem ellenőrzi a VBA, sem típusra, sem tartalomra. Újabb értékadással más típusú változó lesz belőle. Ezen kívül komoly hibalehetőség is, mert egy betű elütése már egy másik változót hoz létre, nyilvánvaló szándékaid ellenére. Aztán a futtatás során keresheted a hibát napestig, mire rájössz, hogy a nap helyett véletlenül a naap (eddig nem létezett) változóhoz adtad a további számolás eredményeit.
Ezért igen erős ajánlás a VBA ellenőrzési és segítségnyújtási lehetőségeit minél jobban kihasználni. Ezt viszont csak a változók előzetes (explicit) deklarációjával érhetjük el, amikor megadhatjuk, hogy a változó milyen típusú legyen - és akkor csak olyan értéket fogad el -, privát vagy publikus legyen, esetleg megmaradjon az értéke mindaddig, amíg az Excelből ki nem léptünk(!). Ezek az opciók deklaráció nélkül (implicite) nem állnak rendelkezésre. A deklaráció egyúttal inicializálja is a változót a típusának megfelelő null/nothing/stb értékkel. Az ellenőrzés során kiderül, ha elütöttünk egy változó nevet, hiszen az nem lesz deklarálva előzetesen.
Az ellenőrzést egy modulban az Option Explicit utasítás modul eleji kiadásával érhetjük el, de ha a Tools - Options - Editor fülön a Require Variable Declaration opciót bepipáljuk, akkor a VBA minden modullapon automatikusan kiteszi a modul elejére az Option Explicit utasítást.
Tapasztalataim alapján egyértelműen hasznos az előzetes deklaráció, mindenkinek, kezdőknek pedig pláne csak ajánlani tudom. Megszokni könnyű és megkönnyíti a munkát. Hiszen deklarálni nemcsak eljárás elején, hanem menet közben is lehet, a változó első használata előtt.
Remélem ez segít a választásban.
Üdv.
Új hozzászólás Aktív témák
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Assassin's Creed Shadows Collector's Edition PC
- BESZÁMÍTÁS! 2TB Kingston KC3000 NVMe SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS Z390 i5 9500 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA Thermaltake 500W
- 100 - Lenovo Yoga Pro 9 (16IRP8) - Intel Core i9-13905H, RTX 4070 (ELKELT)
- BESZÁMÍTÁS! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged