A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat Következő változat | Előző változat | ||
tanszek:oktatas:muszaki_informatika:vba_feladatok [2024/02/22 15:01] knehez [Hogyan Működik?] |
tanszek:oktatas:muszaki_informatika:vba_feladatok [2024/02/22 17:05] (aktuális) knehez [5. Hibaellenőrzés és hibakezelés makrókban] |
||
---|---|---|---|
Sor 99: | Sor 99: | ||
Ez a feladat egy makrót hoz létre, amely adatokat másol egyik munkalapról a másikra. A példa egyszerűsített, amely egy előre meghatározott tartomány adatait másolja át. | Ez a feladat egy makrót hoz létre, amely adatokat másol egyik munkalapról a másikra. A példa egyszerűsített, amely egy előre meghatározott tartomány adatait másolja át. | ||
+ | |||
+ | Ellenőrizzük, hogy van-e Munka1 és Munka2 elnevezésű munkalapunk. ha nincs hozzuk létre őket. | ||
<sxh vb> | <sxh vb> | ||
Sor 108: | Sor 110: | ||
| | ||
' Munkalapok és tartományok beállítása | ' Munkalapok és tartományok beállítása | ||
- | Set forrasMunkalap = ThisWorkbook.Sheets("Forras") | + | Set forrasMunkalap = ThisWorkbook.Sheets("Munka1") |
- | Set celMunkalap = ThisWorkbook.Sheets("Cel") | + | Set celMunkalap = ThisWorkbook.Sheets("Munka2") |
| | ||
' Másolandó tartomány beállítása a Forrás munkalapon | ' Másolandó tartomány beállítása a Forrás munkalapon | ||
Sor 164: | Sor 166: | ||
</sxh> | </sxh> | ||
+ | ====== 5. Hibaellenőrzés és hibakezelés makrókban ====== | ||
+ | |||
+ | Ebben a feladatban egy makró létrehozására mutatunk példát, amely megfelelő hibakezelést implementál a futásidő hibák láthatóvá tétele miatt. | ||
+ | |||
+ | <sxh vb> | ||
+ | Sub HibakezelesMakroban() | ||
+ | On Error GoTo Hibakezelo | ||
+ | | ||
+ | ' Itt történik a kód, ami hibát generálhat | ||
+ | Dim osztando As Double | ||
+ | Dim oszto As Double | ||
+ | osztando = 10 | ||
+ | oszto = 0 ' Ezzel a sorral osztásnál hibát generálunk | ||
+ | | ||
+ | Dim eredmeny As Double | ||
+ | eredmeny = osztando / oszto ' Ez hibát okoz, ha az oszto 0 | ||
+ | | ||
+ | MsgBox "Az eredmény: " & eredmeny | ||
+ | Exit Sub | ||
+ | |||
+ | Hibakezelo: | ||
+ | MsgBox "Hiba történt: " & Err.Description, vbCritical, "Hiba" | ||
+ | ' Itt történhetnek további hibakezelési lépések, pl. naplózás | ||
+ | End Sub | ||
+ | </sxh> | ||
+ | ==== Hogyan Működik? ==== | ||
+ | |||
+ | * A makró a ''On Error GoTo Hibakezelo'' utasítással kezdődik, ami azt jelenti, hogy ha a makró futtatása során hiba történik, a vezérlés átugrik a ''Hibakezelo'' címkéhez. | ||
+ | * A példában szándékosan generálunk egy hibát az osztásnál, ahol az osztó értéke 0. | ||
+ | * Ha ez a hiba megtörténik, a makró a ''Hibakezelo'' részre ugrik, ahol egy üzenetablakban megjelenik a hiba leírása. | ||
+ | * Az ''Exit Sub'' utasítás biztosítja, hogy ha hiba nélkül eljutottunk a makró végére, ne ugorjunk a hibakezelő részre. | ||
+ | * A hibakezelő részben lehetőség van további tevékenységekre, mint például a hiba naplózása vagy speciális hibakezelési rutinok végrehajtása. | ||
+ | |||
+ | ==== Hogyan Működik? ==== | ||
+ | |||
+ | * A makró a ''On Error GoTo Hibakezelo'' utasítással kezdődik, ami azt jelenti, hogy ha a makró futtatása során hiba történik, a vezérlés átugrik a ''Hibakezelo'' címkéhez. | ||
+ | * A példában szándékosan generálunk egy hibát az osztásnál, ahol az osztó értéke 0. | ||
+ | * Ha ez a hiba megtörténik, a makró a ''Hibakezelo'' részre ugrik, ahol egy üzenetablakban megjelenik a hiba leírása. | ||
+ | * Az ''Exit Sub'' utasítás biztosítja, hogy ha hiba nélkül eljutottunk a makró végére, ne ugorjunk a hibakezelő részre. | ||
+ | * A hibakezelő részben lehetőség van további tevékenységekre, mint például a hiba naplózása vagy speciális hibakezelési rutinok végrehajtása. | ||
+ | |||
+ | Ez a makró alapvető hibakezelési technikát mutat be, amely elengedhetetlen bármilyen robosztus VBA alkalmazás vagy makró fejlesztésekor, hogy a végfelhasználók számára kezelhető hibaüzeneteket biztosíthassunk. | ||