Úvod do chyby přetečení VBA

Při práci s VBA se setkáváme s mnoha typy chyb. Chyby se nazývají chyby běhového modulu, když se při provádění kódu vyskytly chyby. Ke každému kódu je při programování VBA přiřazen určitý kód. Jednou z takových chyb je chyba přetečení VBA. Kód pro tuto chybu je chyba doby běhu 6, což znamená přetečení v programování VBA. O této chybě se dozvíme v tomto článku.

Nyní víme, co je tato chyba přetečení za typ chyby, nyní nám dejte vědět, co tato chyba znamená. Pokud deklarujeme jakoukoli proměnnou jako určitý datový typ a hodnota proměnné překračuje limit datového typu proměnné, dostaneme chybu pro přetečení. Pokud například definujeme proměnnou jako celé číslo a víme, že celé číslo může uchovávat hodnoty až 32767 pro kladná čísla a -32768 pro záporná čísla. Pokud tedy poskytneme jakýkoli vstup mimo tento rozsah, dojde k chybě přetečení ve VBA.

Chyba přetečení z hlediska laika znamená, že jsme přetížili datový typ hodnotami, které může obsahovat. Takové případy nás potkají s touto chybou. Abychom se této chybě vyhnuli, musíme si být vědomi, jaký typ dat používáme, abychom tomu zabránili.

Uvidíme na různých příkladech, že jak se v různých typech datových typů s touto chybou setkáme.

Jak používat chybu přetečení VBA v Excelu?

Naučíme se, jak používat funkci chyby přetečení VBA s několika příklady v Excelu.

Tuto šablonu Excel VBA OverFlow Error Excel si můžete stáhnout zde - VBA OverFlow Error Excel Template

Příklad č. 1 - Chyba přetečení

Jako první příklad použijte datový typ Integer. Zkusme přetéct hodnoty, aby je proměnné nemohly uložit a uvidíme chybu, se kterou se setkáme.

Chcete-li v aplikaci Excel použít funkci přetečení VBA, postupujte podle následujících kroků:

Krok 1: Chcete-li v podstatě začít s VBA, první věcí, kterou musíme udělat, je povolit kartu vývojáře a poté kliknutím na ni otevřít VB Editor z jazyka, jak je ukázáno na obrázku níže,

Krok 2: Klikněte na něj a vložte modul následujícím způsobem. Jakmile klikneme na modul. Poklepejte na něj a otevře se nám další okno, kde napíšeme náš kód.

Krok 3 : Na pravé straně nás uvidíme prázdné okno, deklarujeme podfunkci a takto spustíme makro následujícím způsobem,

Kód:

 Vzorek () Konec Sub 

Krok 4: Deklarujte proměnnou jako celé číslo, aby pro nás mohla obsahovat celočíselnou hodnotu,

Kód:

 Dílčí vzorek () Dim A jako celočíselný konec Díl 

Krok 5: Nyní do proměnné Uložte takovou hodnotu, která přeteče typ dat následujícím způsobem,

Kód:

 Dílčí vzorek () Dim A jako celé číslo A = 4896 * 5000 End Sub 

Krok 6: Nyní zobrazte hodnotu A pomocí funkce msgbox,

Kód:

 Dílčí vzorek () Dim A jako celé číslo A = 4896 * 5000 MsgBox A End Sub 

Krok 7: Spusťte výše uvedený kód a podívejte se, jaký výsledek dostaneme,

Tuto chybu jsme obdrželi, protože 4896 * 5000 překračuje limit kladných čísel pro celočíselný typ dat, který má být držen, a proměnná A je touto hodnotou přetečena, takže se setkáváme s touto chybou.

Příklad č. 2 - Chyba přetečení

Nyní v tomto příkladu dejte nám typ dat BYTE. Víme, že bajtový datový typ může uchovávat hodnoty od 0 do 255, ale jakékoli jiné hodnoty než tento rozsah nám způsobí chybu. Pojďme to zjistit.

Krok 1: Náš modul je již vložen, můžeme na něm pracovat nebo vytvořit nový. Ale pracujme na stejném modulu, který jsme vložili. Dvojitým kliknutím na modul znovu vstoupíte do okna kódu,

Krok 2: Prohlásit další dílčí funkci následujícím způsobem,

Kód:

 Dílčí vzorek1 () Koncový díl 

Krok 3: Deklarujte proměnnou jako datový typ BYTE následujícím způsobem,

Kód:

 Dílčí vzorek1 () Dim A jako bajtový konec Díl 

Krok 4: Nyní v hodnotě proměnné úložiště vyšší než 255,

Kód:

 Dílčí vzorek1 () Dim A jako bajt A = 266 End Sub 

Krok 5: Pomocí funkce msgbox zobrazte hodnotu A,

Kód:

 Dílčí vzorek1 () Dim A jako bajt A = 266 MsgBox A End Sub 

Krok 6: Spusťte výše uvedený kód stisknutím klávesy F5 a podívejte se na výsledek,

Krok 7: Nyní zkusme změnit hodnotu A na 244 a znovu spusťte kód, abychom viděli výsledek,

Kód:

 Dílčí vzorek1 () Dim A jako bajt A = 244 MsgBox A End Sub 

Krok 8: Když znovu spustíme kód, uvidíme následující výsledek,

Když poprvé spustíme kódovou proměnnou A, mají hodnoty větší, než je rozsah, který může datový typ BYTE pojmout, ale ve druhé instanci má proměnná A data v rozsahu datových typů, takže jsme nenastali chybu přetečení.

Příklad č. 3 - Chyba přetečení

Nyní jako příklad použijeme DLOUHÝ datový typ, protože se jedná o nejpoužívanější datový typ mezi programátory.

Krok 1: Budeme znovu pracovat ve stejném modulu, který jsme vložili dříve. Stačí jen dvakrát kliknout na modul a jsme v něm.

Krok 2: Deklarujte dílčí funkci, jak je znázorněno na snímku obrazovky.

Kód:

 Dílčí vzorek2 () Koncový díl 

Krok 3: Deklarujte proměnnou jako LONG datový typ následujícím způsobem.

Kód:

 Dílčí vzorek2 () Dim A jako dlouhý konec Díl 

Krok 4: Nyní podobně jako výše uvedené příklady, přetečte tuto proměnnou tak, že ji přidrží nad její rozsah následujícím způsobem.

Kód:

 Dílčí vzorek2 () Dim A tak dlouho A = 2000 * 365 End Sub 

Krok 5: Pomocí funkce msgbox zobrazte hodnotu A následujícím způsobem.

Kód:

 Dílčí vzorek2 () Dim A tak dlouho A = 2000 * 365 MsgBox A End Sub 

Krok 6: Klikněte na výše uvedené tlačítko Run a uvidíte, že došlo k chybě přetečení.

Krok 7: Nyní existuje způsob, jak překonat tuto chybu v dlouhém datovém typu pomocí funkce CLNG následujícím způsobem.

Kód:

 Dílčí vzorek2 () Dim A tak dlouho A = CLng (2000) * 365 MsgBox A End Sub 

Krok 8: Pokud nyní znovu spustíme kód, můžeme vidět následující výsledek.

Co teď funkce CLNG udělala? Převedla hodnotu na dlouhé celé číslo, které proměnná pojme.

Jak překonat chybu přetečení ve VBA

Když narazíme na chybu přetečení ve VBA, což znamená, že některá z našich proměnných nemá více, nemá některé hodnoty, které nedokáže držet. Musíme identifikovat proměnnou a napravit ji. Máme také funkci CLNG pro dlouhé datové typy, které nám pomáhají. Ale vědět, že náš datový typ skutečně pomáhá.

Co si pamatovat

O chybách přetečení ve VBA si musíme pamatovat:

  • Chyba přetečení je chyba doby běhu.
  • Kód chyby pro chybu přetečení je 6.
  • Abychom překonali chybu přetečení, musíme vědět, jaký datový typ pojme, kolik hodnot.
  • Funkce CLNG pomáhá při chybě přetečení u dlouhých datových typů.

Doporučené články

Toto je průvodce chybou přetečení VBA. Zde diskutujeme o tom, jak používat Excel VBA Overflow Error Function spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Funkce kopírování vložit ve VBA
  2. Funkce podstrčení Excel
  3. VBA index mimo rozsah
  4. Excel ISNUMBER vzorec

Kategorie: