Въведение в грешка при преливане на VBA

Срещаме много видове, ако грешка по време на работа с VBA. Грешките се наричат ​​грешки по време на изпълнение, когато са срещнали грешка по време на изпълнение на кода. Също така, всеки код има определен код, присвоен му в програмирането на VBA. В excel една такава грешка е VBA грешка Overflow. Кодът за тази грешка е грешка във времето на изпълнение 6, което означава препълване в програмирането на VBA. Ще научим за тази грешка в тази статия.

Сега ние знаем какво е тази грешка при преливане е вид грешка, сега да разберем какво означава тази грешка. Ако декларираме някоя променлива като определен тип данни и стойността на променливата надвишава границата на типа данни на променливата, получаваме грешката за преливане. Например, ако определим променлива като цяло число и знаем, че цяло число може да съдържа стойности до 32767 за положителни числа и -32768 за отрицателни числа. Така че, ако предоставим някакъв вход извън този диапазон, ще срещнем грешка при преливане в VBA.

Грешка при преливане в слоеве означава, че претоварваме тип данни със стойностите, които може да задържи. Такива случаи ще ни срещнат с тази грешка. За да избегнем тази грешка, трябва да сме наясно какъв тип данни използваме, за да можем да я предотвратим.

Ще разберем чрез различни примери, че как при различните типове данни евентуално ще срещнем тази грешка.

Как да използвам VBA грешка при препълване в Excel?

Ще научим как да използваме функция за грешка при преливане на VBA с няколко примера в excel.

Можете да изтеглите този шаблон на VBA OverFlow Error Excel тук - VBA OverFlow Error Excel шаблон

Пример №1 - Грешка при преливане

За първия пример нека използваме типа данни на Integer. Нека се опитаме да препълним стойностите, така че променливите да не могат да го съхраняват и да видим грешката, която срещаме.

Следвайте стъпките по-долу, за да използвате функция VBA Overflow Error в Excel:

Стъпка 1: За да започнем с VBA първото нещо, което трябва да направим, е да активираме раздела на нашия програмист и след това щракнете върху него, за да отворите VB Editor от опцията Visual Basic, както е показано на екрана по-долу,

Стъпка 2: Кликнете върху него и поставете модул, както следва, След като щракнем върху модула. Кликнете два пъти върху него и той ще отвори друг прозорец за нас, където ще напишем кода си.

Стъпка 3 : Ще видим празен прозорец от дясната страна на нас, ще декларираме подфункция и така стартираме макрос, както следва,

Код:

 Sub Sample () Край Sub 

Стъпка 4: Декларирайте променлива като цяло число, така че тя да може да съдържа цяла стойност за нас,

Код:

 Sub Sample () Dim A As Integer End Sub 

Стъпка 5: Сега в Variable A съхранявайте такава стойност, която ще прелее типа данни, както следва,

Код:

 Подпроба () Dim A като цяло число A = 4896 * 5000 Край Sub 

Стъпка 6: Сега покажете стойността на A с помощта на функцията msgbox,

Код:

 Sub Sample () Dim A като цяло число A = 4896 * 5000 MsgBox A End Sub 

Стъпка 7: Изпълнете горния код и вижте какъв резултат получаваме,

Получихме тази грешка, защото 4896 * 5000 е над положителното ограничение на числото за целочисления тип данни, който трябва да се задържи, а променлива A е препълнена от тази стойност, така че срещаме тази грешка.

Пример №2 - Грешка при преливане

Сега в този пример нека тип от данни BYTE. Знаем, че типът байтови данни може да съдържа стойности от 0 до 255, но всички стойности, различни от този диапазон, ще ни допуснат грешка. Нека да разберем.

Стъпка 1: Вече имаме нашия модул, можем да работим върху същия или да създадем нов. Но нека работим върху същия модул, който сме поставили. Кликнете два пъти върху модула, за да влезете отново в прозореца с код,

Стъпка 2: Декларирайте друга подфункция, както следва,

Код:

 Sub Sample1 () Край Sub 

Стъпка 3: Декларирайте променлива като тип данни BYTE, както следва,

Код:

 Sub Sample1 () Dim A As Byte End Sub 

Стъпка 4: Сега в Variable A стойността на магазина над 255, както следва,

Код:

 Sub Sample1 () Dim A As Byte A = 266 End Sub 

Стъпка 5: Използвайте функция msgbox, за да покажете стойността на A,

Код:

 Sub Sample1 () Dim A като байт A = 266 MsgBox A End Sub 

Стъпка 6: Нека стартираме горния код, като натискаме F5 и виждаме резултата,

Стъпка 7: Сега нека опитаме да променим стойността от A на 244 и да повторим кода, за да видим резултата,

Код:

 Sub Sample1 () Dim A като байт A = 244 MsgBox A End Sub 

Стъпка 8: Когато стартираме кода отново, виждаме следния резултат,

Когато за първи път стартираме кодовата променлива A има стойности повече от диапазона, който може да съдържа тип данни от BYTE, но във втория случай променливата A има данни в своя диапазон от типове данни, така че не срещнахме грешката при преливане.

Пример №3 - Грешка при преливане

Сега нека използваме тип данни LONG като пример, тъй като това е най-използваният тип данни сред програмистите.

Стъпка 1: Ще работим отново в същия модул, който сме поставили по-рано. Просто трябва да кликнем два пъти върху модула и ние сме в него.

Стъпка 2: Декларирайте подфункция, както е показано на екрана.

Код:

 Sub Sample2 () Край Sub 

Стъпка 3: Декларирайте променлива като LONG тип данни, както следва.

Код:

 Sub Sample2 () Dim A As Long End Sub 

Стъпка 4: Сега подобно на горните примери, нека да препълним тази променлива, като я накараме да държи стойности над нейния диапазон, както следва.

Код:

 Sub Sample2 () Dim A As Long A = 2000 * 365 End Sub 

Стъпка 5: Използвайте функцията msgbox, за да покажете стойността на A, както следва.

Код:

 Sub Sample2 () Dim A As Long A = 2000 * 365 MsgBox A End Sub 

Стъпка 6: Щракнете върху горния бутон Run и вижте, че срещаме грешка при преливане.

Стъпка 7: Сега има метод за преодоляване на тази грешка при дълъг тип данни, като се използва функцията CLNG, както следва.

Код:

 Sub Sample2 () Dim A As Long A = CLng (2000) * 365 MsgBox A End Sub 

Стъпка 8: Ако отново стартираме кода, можем да видим следния резултат.

Сега, какво направи функцията CLNG? Той преобразува стойността в дълго цяло число, което променливата може да съдържа.

Как да преодолеем грешката при преливане в VBA

Когато срещнем грешка при преливане в VBA, което означава, че някоя от нашите променливи, не повече има някои стойности, които тя не може да задържи. Трябва да идентифицираме променливата и да я поправим. Също така имаме функция CLNG за дълги типове данни, за да ни помогне. Но познаването на нашия тип данни всъщност помага.

Неща, които трябва да запомните

Има някои неща, които трябва да помним за грешка при препълване в VBA:

  • Грешка при препълване е грешка във времето на изпълнение.
  • Кодът на грешката за грешка при преливане е 6.
  • За да преодолеем грешката при преливане, трябва да знаем какъв тип данни може да съдържа колко стойности.
  • Функцията CLNG помага при грешка при препълване при дълги типове данни.

Препоръчителни статии

Това е ръководство за грешка при преливане на VBA. Тук обсъждаме как да използвате Excel VBA Overflow Error Function, заедно с практически примери и шаблон за Excel за изтегляне. Можете да разгледате и другите ни предложени статии -

  1. Функция за копиране на поставяне в VBA
  2. Функция Substring Excel
  3. VBA абонамент извън обхвата
  4. Excel ISNUMBER Formula

Категория: