Chyba přetečení VBA | Jak opravit chybu 6 přetečení doby běhu?
Chyba přetečení aplikace Excel VBA
Chyby jsou nedílnou součástí každého programovacího jazyka, ale zjištění, proč tato chyba přichází, vás přiměje stát se stranou od davu v rozhovorech. Chyby nejsou pro kódování VBA divné, chyby nejsou úmyslné, takže hledání příčiny chyby dělá těžký úkol. Ve VBA máme některé z předdefinovaných chyb a jejich znalost vám umožní opravit chybu velmi rychle. V tomto článku vám ukážeme RUN TIME ERROR 6: OverFlow. Postupujte podle celého článku a dozvíte se o chybě, důvodech chyby přetečení VBA a o tom, jak je opravit.
Co je chyba běhu 6: Chyba přetečení ve VBA?
Když deklarujeme proměnnou, přiřadíme jim datový typ. Měli bychom si být plně vědomi výhod a nevýhod každého datového typu. Zde se do obrazu dostává chyba doby běhu 6: OverFlow. Když přetížíme datový typ hodnotou, která je větší než kapacita datového typu, dostaneme tuto chybu.
Například: Pokud deklarujete proměnnou jako Byte.
Dim Number as Byte
Bajtový datový typ může obsahovat hodnoty od 0 do 255. Nyní přiřadím hodnotu 240.
Počet = 240
To by mělo fungovat dobře, protože hodnota, kterou jsme přiřadili, je menší než limit Byteovy hodnoty 255. V okamžiku, kdy přiřadíme hodnotu, která je více než 255, vede to k chybě Chyba doby běhu 6: OverFlow.
Toto je obecný přehled o chybě běhu 6: OverFlow. Některé z příkladů uvidíme podrobně.
Příklady chyby běhu 6: OverFlow ve VBA
Podívejme se na několik příkladů chyby VBA OverFlow v aplikaci Excel.
Příklad 1: Chyba přetečení u datového typu Byte
Jak jsem řekl, je důležité znát klady a zápory datového typu VBA, který budeme používat. Například se podívejte na níže uvedený kód.
Kód:
Sub OverFlowError_Example1 () Dim Number as Byte Number = 256 MsgBox Number End Sub
Pro proměnnou „Number“ jsem přiřadil hodnotu 256. Když spustím tento kód, dostaneme níže uvedenou chybu.
Je to proto, že datový typ Byte může obsahovat hodnoty od 0 do 255. Způsobuje to tedy chybu. Abychom chybu napravili, buď musíme změnit datový typ, nebo musíme snížit hodnotu, kterou jsme přiřadili proměnné „Number“.
Příklad 2: Chyba přetečení VBA s celočíselným datovým typem
Celé číslo VBA je datový typ, který může obsahovat hodnoty od -32768 do 32767. Například se podívejte na níže uvedený kód.
Kód:
Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 25656 MsgBox MyValue End Sub
Když spustím tento kód, dostaneme hodnotu proměnné „MyValue“ v okně se zprávou, tj. 25656.
Nyní přiřadím číslo proměnné jako „45654“.
Kód:
Sub OverFlowError_Example2 () Dim MyValue jako Integer MyValue = 45654 MsgBox MyValue End Sub
Nyní, když se pokusím spustit kód, způsobí to chybu, protože datový typ, který jsme deklarovali, může obsahovat pouze maximálně 32767 pro kladná čísla a pro záporná čísla je -32768.
Příklad 3: Chyba přetečení VBA s dlouhým datovým typem
Dlouhý datový typ je nejčastěji používaným datovým typem v aplikaci Excel VBA. To může obsahovat hodnoty od –2 147 483 648 do 2 147 486 647. Cokoli nad tím způsobí chybu.
Kód:
Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = 5000 * 457 MsgBox MyValue End Sub
To způsobí chybu přetečení.
Chcete-li tento problém vyřešit, musíme ve VBA použít funkci CLNG. Níže je uveden příklad toho samého.
Kód:
Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = CLng (5000) * 457 MsgBox MyValue End Sub
To by mělo fungovat dobře.
Toto je přehled chyby doby běhu 6: OverFlow . Abychom tuto chybu vyřešili, musíme si plně uvědomit datové typy. Vraťte se tedy k základům, udělejte základy správně, pak vše zapadne na své místo.
Tuto šablonu chyby přetečení VBA aplikace Excel si můžete stáhnout zde - Šablona chyby přetečení VBA aplikace Excel