Úvod do chyby pretečenia VBA

Pri práci s VBA sa stretávame s mnohými typmi chýb. Chyby sa nazývajú chyby runtime, keď pri vykonávaní kódu narazili na chybu. Každému kódu je priradený aj určitý kód pri programovaní VBA. Jednou z takýchto chýb je chyba pretečenia VBA. Kódom tejto chyby je chyba doby chodu 6, čo znamená pretečenie v programovaní VBA. O tejto chybe sa dozvieme v tomto článku.

Teraz vieme, čo je táto chyba pretečenia za typ chyby, teraz nám dajte vedieť, čo táto chyba znamená. Ak deklarujeme ľubovoľnú premennú ako určitý dátový typ a hodnota premennej prekračuje limit dátového typu premennej, dostaneme chybu pri pretečení. Napríklad, ak definujeme premennú ako celé číslo a vieme, že celé číslo môže obsahovať hodnoty až 32767 pre kladné čísla a -32768 pre záporné čísla. Ak teda poskytneme akýkoľvek vstup mimo tohto rozsahu, vo VBA sa vyskytne chyba pretečenia.

Chyba pretečenia v podmienkach laika znamená, že preťažíme dátový typ hodnotami, ktoré môže obsahovať. Takéto prípady nás narazia na túto chybu. Aby sme sa vyhli tejto chybe, musíme si byť vedomí toho, aký typ údajov používame, aby sme tomu zabránili.

Uvidíme na rôznych príkladoch, že ako sa v rôznych typoch dátových typov s touto chybou stretneme.

Ako používať chybu pretečenia VBA v programe Excel?

Naučíme sa, ako používať funkciu chyby pretečenia VBA s niekoľkými vynikajúcimi príkladmi.

Túto šablónu Excel VBA OverFlow Error Excel si môžete stiahnuť tu - Šablónu Excel VBA OverFlow Error Excel

Príklad č. 1 - Chyba pretečenia

Ako prvý príklad použite typ údajov Integer. Pokúsme sa pretečiť hodnoty, aby ich premenné nemohli uložiť a uvidíme chybu, s ktorou sa stretneme.

Ak chcete použiť funkciu chyby pretečenia VBA v programe Excel, postupujte podľa nasledujúcich krokov:

Krok 1: Ak chcete začať s programom VBA, v prvom rade je potrebné povoliť kartu vývojára a kliknutím na ňu otvoriť aplikáciu VB Editor z jazyka Visual Basic, ako je to znázornené na obrázku nižšie,

Krok 2: Kliknite naň a vložte modul nasledujúcim spôsobom. Po kliknutí na modul. Dvojitým kliknutím naň sa nám otvorí ďalšie okno, kde napíšeme náš kód.

Krok 3 : Na pravej strane nás uvidíme prázdne okno, vyhlásime podfunkciu a takto spustíme makro nasledovne:

kód:

 Čiastková vzorka () Koniec č 

Krok 4: Vyhláste premennú ako celé číslo, aby pre nás mohla obsahovať celočíselnú hodnotu,

kód:

 Čiastková vzorka () Dim A ako celé číslo Sub 

Krok 5: Teraz do premennej Uložte takú hodnotu, ktorá pretečie typ údajov nasledovne:

kód:

 Čiastková vzorka () Dim A ako celé číslo A = 4896 * 5000 End Sub 

Krok 6: Teraz zobrazte hodnotu A pomocou funkcie msgbox,

kód:

 Čiastková vzorka () Dim A ako celé číslo A = 4896 * 5000 MsgBox A End Sub 

Krok 7: Spustite vyššie uvedený kód a zistite, aký výsledok dosiahneme,

Túto chybu sme dostali, pretože 4896 * 5000 prekračuje limit kladných čísiel pre celočíselný typ údajov, ktorý sa má uchovať, a premenná A je touto hodnotou pretečená, takže sa stretávame s touto chybou.

Príklad č. 2 - Chyba pretečenia

Teraz v tomto príklade dajte nám typ údajov BYTE. Vieme, že bajtový typ údajov môže uchovávať hodnoty od 0 do 255, ale akékoľvek iné hodnoty ako tento rozsah nám spôsobia chybu. Zistime to.

Krok 1: Náš modul je už vložený, môžeme na ňom pracovať alebo vytvoriť nový. Pracujme však na rovnakom module, aký sme vložili. Dvojitým kliknutím na modul vstúpite do okna s kódom znova,

Krok 2: Vyhlásiť nasledujúcu subfunkciu nasledovne:

kód:

 Čiastková vzorka1 () Koncová čiastková č 

Krok 3: Deklarujte premennú ako typ údajov BYTE takto,

kód:

 Čiastková vzorka1 () Dim A ako bajtový koniec Č 

Krok 4: Teraz v premennej A hodnota úložiska vyššia ako 255, ako je uvedené,

kód:

 Čiastková vzorka1 () Dim A ako bajt A = 266 Koniec Sub 

Krok 5: Na zobrazenie hodnoty A použite funkciu msgbox,

kód:

 Čiastková vzorka1 () Dim A ako bajt A = 266 MsgBox A End Sub 

Krok 6: Spustite vyššie uvedený kód stlačením klávesu F5 a pozrite sa na výsledok,

Krok 7: Skúsme zmeniť hodnotu A na 244 a znova spustite kód, aby ste videli výsledok,

kód:

 Čiastková vzorka1 () Dim A ako bajt A = 244 MsgBox A End Sub 

Krok 8: Keď znova spustíme kód, vidíme nasledujúci výsledok,

Keď prvýkrát spustíme kódovú premennú A, majú hodnoty väčšie ako rozsah, ktorý môže obsahovať typ údajov BYTE, ale v druhom prípade má premenná A údaje v rozsahu typov údajov, takže sme sa nestretli s chybou pretečenia.

Príklad č. 3 - Chyba pretečenia

Teraz používajme ako príklad typ údajov DLHODOBÝ, pretože ide o najpoužívanejší typ údajov medzi programátormi.

Krok 1: Budeme opäť pracovať v rovnakom module, aký sme vložili predtým. Potrebujeme iba dvakrát kliknúť na modul a sme v ňom.

Krok 2: Vyhláste čiastočnú funkciu, ako je to znázornené na snímke obrazovky.

kód:

 Čiastková vzorka 2 () Koniec č 

Krok 3: Deklarujte premennú ako typ údajov DLHÝ takto.

kód:

 Čiastková vzorka2 () Dim A ako dlhý koniec Sub 

Krok 4: Teraz podobne ako vyššie uvedené príklady, pretečme túto premennú tak, že ju udržíme nad jej rozsahom nasledovne.

kód:

 Čiastková vzorka2 () Dim A tak dlhá A = 2000 * 365 Koniec Č 

Krok 5: Použite funkciu msgbox na zobrazenie hodnoty A nasledovne.

kód:

 Čiastková vzorka2 () Dim A tak dlhá A = 2000 * 365 MsgBox A End Sub 

Krok 6: Kliknite na vyššie uvedené tlačidlo Spustiť a uvidíte, že sa vyskytla chyba pretečenia.

Krok 7: Teraz existuje spôsob, ako prekonať túto chybu v type dlhých dát pomocou funkcie CLNG nasledovne.

kód:

 Čiastková vzorka2 () Dim A tak dlho A = CLng (2000) * 365 MsgBox A End Sub 

Krok 8: Ak znova spustíme kód, môžeme vidieť nasledujúci výsledok.

Čo urobila funkcia CLNG? Skonvertovala hodnotu na dlhé celé číslo, ktoré môže premenná obsahovať.

Ako prekonať chybu pretečenia vo VBA

Keď narazíme na chybu pretečenia vo VBA, ktorá znamená niektorú z našich premenných, nič viac nemá niektoré hodnoty, ktoré nedokáže udržať. Musíme premennú identifikovať a napraviť ju. Máme tiež funkciu CLNG pre dlhé typy údajov, ktoré nám pomáhajú. Ale vedieť, že náš typ údajov skutočne pomáha.

Čo je potrebné pamätať

Čo sa týka chyby pretečenia vo VBA, musíme si pamätať niektoré veci:

  • Chyba pretečenia je chyba doby spustenia.
  • Kód chyby pre chybu pretečenia je 6.
  • Aby sme prekonali chybu pretečenia, musíme vedieť, aký typ údajov môže obsahovať toľko hodnôt.
  • Funkcia CLNG pomáha pri chybe pri pretečení dlhých typov údajov.

Odporúčané články

Toto je sprievodca chybou pretečenia VBA. Tu diskutujeme o tom, ako používať Excel VBA Overflow Error Function spolu s praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Kopírovať funkciu vloženia vo VBA
  2. Funkcia podčiarknutia Excel
  3. Dolný index VBA je mimo rozsahu
  4. Excel ISNUMBER vzorec

Kategórie: