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 w kodowaniu VBA. Błędy nie są zamierzone, więc znalezienie przyczyny błędu jest trudnym zadaniem. W VBA mamy kilka predefiniowanych błędów, a 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 VBA i 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 - w tym przypadku pojawia się 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ść 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 przypisania wartości większej niż 255 prowadzi to do błędu Run Time Error 6: OverFlow.
To jest ogólny przegląd Run Time Error 6: OverFlow. Przedstawiamy 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 typem danych bajtowych
Jak powiedziałem, ważne jest, aby znać zalety i wady typu danych VBA, którego będziemy używać. 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, albo musimy zmienić typ danych, albo musimy 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. Spójrz na przykład na poniższy kod.
Kod:
Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 25656 MsgBox MyValue End Sub

Kiedy uruchomię ten kod, w oknie komunikatu otrzymamy wartość zmiennej „MyValue”, czyli 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 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.
To jest 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 wtedy wszystko będzie na swoim miejscu.
Możesz pobrać ten szablon Excela błędu przepełnienia VBA tutaj - Szablon Excela błędu przepełnienia VBA