Błąd przepełnienia VBA

Błąd przepełnienia VBA programu Excel

Błędy są nieodłączną częścią każdego języka kodowania, ale odkrycie, dlaczego ten błąd się pojawia, sprawia, że ​​wyróżniasz się z tłumu podczas wywiadów. Błędy nie są obce kodowaniu VBA, błędy nie są zamierzone, więc znalezienie przyczyny błędu jest trudnym zadaniem. W VBA mamy kilka predefiniowanych błędów i wiedza o nich pozwala bardzo szybko naprawić błąd. W tym artykule pokażemy Ci RUN TIME ERROR 6: OverFlow. Postępuj zgodnie z pełnym artykułem, aby dowiedzieć się o błędzie, przyczynach błędu przepełnienia języka VBA oraz o tym, jak je naprawić.

Co to jest Run Time Error 6: Błąd przepełnienia w VBA?

Kiedy deklarujemy zmienną, przypisujemy im typ danych. Powinniśmy być w pełni świadomi zalet i wad każdego typu danych. Tutaj pojawia się błąd Run Time Error 6: OverFlow. Kiedy przeciążamy typ danych wartością, która jest większa niż pojemność typu danych, otrzymamy ten błąd.

Na przykład: jeśli zadeklarujesz zmienną jako Byte.

Dim Number As Byte

Typ danych bajtowych może zawierać wartości od 0 do 255. Teraz przypiszę wartość jako 240.

Liczba = 240

Powinno to działać dobrze, ponieważ przypisana przez nas wartość jest mniejsza niż granica wartości Byte równa 255. W momencie, gdy przypisujemy wartość większą niż 255, prowadzi to do błędu Run Time Error 6: OverFlow.

To jest ogólny przegląd Run Time Error 6: OverFlow. Przedstawimy szczegółowo niektóre przykłady.

Przykłady błędu czasu wykonania 6: Przepełnienie w VBA

Zobaczmy kilka przykładów błędu VBA OverFlow w programie Excel.

Przykład 1: Błąd przepełnienia z bajtowym typem danych

Jak powiedziałem, ważne jest, aby poznać zalety i wady typu danych VBA, z którego będziemy korzystać. Na przykład spójrz na poniższy kod.

Kod:

 Sub OverFlowError_Example1 () Dim Number As Byte Number = 256 MsgBox Number End Sub 

Zmiennej „Number” przypisałem wartość 256. Kiedy uruchomię ten kod, otrzymamy poniższy błąd.

Dzieje się tak, ponieważ typ danych Byte może zawierać wartości od 0 do 255. Powoduje to więc błąd. Aby naprawić błąd, musimy zmienić typ danych lub zmniejszyć wartość, którą przypisaliśmy do zmiennej „Number”.

Przykład 2: Błąd przepełnienia VBA z typem danych typu Integer

Liczba całkowita VBA to typ danych, który może zawierać wartości od -32768 do 32767. Na przykład spójrz na poniższy kod.

Kod:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 25656 MsgBox MyValue End Sub 

Kiedy uruchomię ten kod, otrzymamy wartość zmiennej „MyValue” w oknie komunikatu, tj. 25656.

Teraz przypiszę numer zmiennej jako „45654”.

Kod:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 45654 MsgBox MyValue End Sub 

Teraz, jeśli spróbuję uruchomić kod, spowoduje to błąd, ponieważ zadeklarowany przez nas typ danych może pomieścić maksymalnie 32767 dla liczb dodatnich, a dla liczb ujemnych limit wynosi -32768.

Przykład 3: Błąd przepełnienia VBA z długim typem danych

Długi typ danych jest najczęściej używanym typem danych w programie Excel VBA. Może zawierać wartości od –2 147 483 648 do 2 147 486 647. Wszystko powyżej spowoduje błąd.

Kod:

 Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = 5000 * 457 MsgBox MyValue End Sub 

Spowoduje to błąd przepełnienia.

Aby rozwiązać ten problem, musimy użyć funkcji CLNG w VBA. Poniżej znajduje się przykład tego samego.

Kod:

 Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = CLng (5000) * 457 MsgBox MyValue End Sub 

To powinno działać dobrze.

Oto omówienie błędu 6: Przepływ w czasie wykonywania . Aby rozwiązać ten błąd, musimy mieć pełną świadomość typów danych. Więc wróć do podstaw, zrób podstawy dobrze, a wszystko się ułoży.

Możesz pobrać ten szablon Excela błędu przepełnienia VBA tutaj - Szablon Excela błędu przepełnienia VBA