Inleiding tot VBA-overloopfout

We komen veel soorten fouten tegen tijdens het werken met VBA. Fouten worden runtime-fouten genoemd wanneer ze een fout hebben aangetroffen tijdens het uitvoeren van de code. Aan elke code is ook een bepaalde code toegewezen in de programmering van VBA. In Excel is een dergelijke fout de VBA Overflow-fout. De code voor deze fout is runtime-fout 6, wat een overloop in de programmering van VBA betekent. We zullen over deze fout leren in dit artikel.

Nu weten we wat die overloopfout een soort fout is. Laten we nu begrijpen wat deze fout betekent. Als we een variabele als een bepaald gegevenstype declareren en de waarde van de variabele de limiet van het gegevenstype van de variabele overschrijdt, krijgen we de foutmelding voor overloop. Als we bijvoorbeeld een variabele definiëren als geheel getal en we weten dat geheel getal waarden kan bevatten tot 32767 voor positieve getallen en -32768 voor negatieve getallen. Dus als we invoer buiten dat bereik leveren, zullen we een overloopfout tegenkomen in VBA.

Overloopfout in leek betekent dat we een gegevenstype overbelasten met de waarden die het kan bevatten. In dergelijke gevallen zullen we deze fout tegenkomen. Dus om deze fout te voorkomen, moeten we weten welk gegevenstype we gebruiken, zodat we het kunnen voorkomen.

We zullen door verschillende voorbeelden zien hoe we deze fout in verschillende soorten gegevenstypen mogelijk tegenkomen.

Hoe VBA Overflow Error in Excel te gebruiken?

We zullen leren hoe een VBA-overloopfoutfunctie te gebruiken met enkele voorbeelden in Excel.

U kunt deze VBA OverFlow-fout Excel-sjabloon hier downloaden - VBA OverFlow-fout Excel-sjabloon

Voorbeeld # 1 - Overloopfout

Laten we voor het eerste voorbeeld het gegevenstype Integer gebruiken. Laten we proberen de waarden te overlopen zodat variabelen het niet kunnen opslaan en de fout zien die we tegenkomen.

Volg de onderstaande stappen om de VBA Overflow Error-functie in Excel te gebruiken:

Stap 1: Om in principe met VBA te beginnen, moeten we eerst het tabblad van onze ontwikkelaar inschakelen en erop klikken om de VB-editor te openen vanuit de Visual Basic-optie, zoals weergegeven in de onderstaande schermafbeelding,

Stap 2: Klik erop en plaats een module als volgt, zodra we op de module klikken. Dubbelklik erop en het opent een nieuw venster voor ons waar we onze code zullen schrijven.

Stap 3 : We zien een leeg venster aan de rechterkant van ons, verklaren een subfunctie en zo beginnen we een macro als volgt,

Code:

 Sub-monster () Einde Sub 

Stap 4: Declareer een variabele als een geheel getal zodat deze voor ons een geheel getal kan bevatten,

Code:

 Sub-monster () Dim A als geheel getal Sub 

Stap 5: sla nu in variabele A een dergelijke waarde op die het gegevenstype als volgt overstort,

Code:

 Sub-monster () Dim A als geheel getal A = 4896 * 5000 Einde Sub 

Stap 6: Geef nu de waarde van A weer met de msgbox-functie,

Code:

 Sub-monster () Dim A als geheel getal A = 4896 * 5000 MsgBox A End Sub 

Stap 7: Voer de bovenstaande code uit en kijk welk resultaat we krijgen,

We hebben deze fout ontvangen omdat 4896 * 5000 de positieve getallimiet voor het gegevenstype Geheel getal overschrijdt en variabele A wordt overlopen door deze waarde, waardoor we deze fout tegenkomen.

Voorbeeld # 2 - Overloopfout

Laten we nu in dit voorbeeld het gegevenstype BYTE vermelden. We weten dat het byte-gegevenstype waarden van 0 tot 255 kan bevatten, maar andere waarden dan dat bereik geven ons een foutmelding. Laat het ons weten.

Stap 1: We hebben onze module al geplaatst, we kunnen aan dezelfde werken of een nieuwe maken. Maar laten we werken aan dezelfde module die we hebben ingevoegd. Dubbelklik op de module om het codevenster opnieuw te openen,

Stap 2: Declareer een andere subfunctie als volgt,

Code:

 Sub Sample1 () Einde Sub 

Stap 3: Declareer een variabele als gegevenstype BYTE als volgt,

Code:

 Sub Sample1 () Dim A As Byte End Sub 

Stap 4: Nu in variabele A winkelwaarde boven 255 als volgt,

Code:

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

Stap 5: Gebruik een msgbox-functie om de waarde van A weer te geven,

Code:

 Sub Sample1 () Dim A als Byte A = 266 MsgBox A End Sub 

Stap 6: Laten we de bovenstaande code uitvoeren door op F5 te drukken en het resultaat te bekijken,

Stap 7: Laten we nu proberen de waarde van A te wijzigen in 244 en de code opnieuw uitvoeren om het resultaat te zien,

Code:

 Sub Sample1 () Dim A als Byte A = 244 MsgBox A End Sub 

Stap 8: Wanneer we de code opnieuw uitvoeren, zien we het volgende resultaat,

Wanneer we de codevariabele A voor het eerst uitvoeren, heeft deze waarden meer dan het bereik dat een BYTE-gegevenstype kan bevatten, maar in tweede instantie heeft de variabele A gegevens in het datatypebereik, dus zijn we de overloopfout niet tegengekomen.

Voorbeeld # 3 - Overloopfout

Laten we nu het LANG-gegevenstype als voorbeeld gebruiken, omdat dit het meest gebruikte gegevenstype is onder programmeurs.

Stap 1: We zullen weer werken in dezelfde module die we eerder hebben ingevoegd. We hoeven alleen maar op de module te dubbelklikken en we zitten erin.

Stap 2: Declareer een subfunctie zoals getoond in de screenshot.

Code:

 Sub Sample2 () Einde Sub 

Stap 3: Declareer een variabele als LANG datatype als volgt.

Code:

 Sub Sample2 () Dim A As Long End Sub 

Stap 4: Laten we nu, vergelijkbaar met bovenstaande voorbeelden, deze variabele overlopen door deze als volgt waarden boven het bereik te houden.

Code:

 Sub Sample2 () Dim A Zo lang A = 2000 * 365 Einde Sub 

Stap 5: Gebruik een msgbox-functie om de waarde van A als volgt weer te geven.

Code:

 Sub Sample2 () Dim A Zo lang A = 2000 * 365 MsgBox A End Sub 

Stap 6: Klik op de bovenstaande knop Uitvoeren en zie dat er een overloopfout optreedt.

Stap 7: Nu is er een methode om deze fout in het lange gegevenstype te overwinnen met behulp van de CLNG-functie als volgt.

Code:

 Sub Sample2 () Dim A zo lang A = CLng (2000) * 365 MsgBox A End Sub 

Stap 8: Als we de code opnieuw uitvoeren, zien we het volgende resultaat.

Wat deed de CLNG-functie nu? Het converteerde de waarde naar een lang geheel getal dat de variabele kan bevatten.

Hoe Overflow Error in VBA te overwinnen

Wanneer we in VBA een overloopfout tegenkomen, betekent dit dat een van onze variabelen niet meer een aantal waarden heeft die niet kunnen worden bewaard. We moeten de variabele identificeren en corrigeren. We hebben ook de CLNG-functie voor lange gegevenstypen om ons te helpen. Maar het kennen van ons gegevenstype helpt eigenlijk.

Dingen om te onthouden

Er zijn bepaalde dingen die we moeten onthouden over de overloopfout in VBA:

  • Overloopfout is een runtime-fout.
  • De foutcode voor overloopfout is 6.
  • Om overstromingsfouten te verhelpen, moeten we weten welk gegevenstype hoeveel waarden kan bevatten.
  • CLNG-functie helpt bij overloopfouten voor lange gegevenstypen.

Aanbevolen artikelen

Dit is een gids voor VBA Overflow Error. Hier bespreken we hoe de Excel VBA Overflow Error-functie te gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Kopieer en plak functie in VBA
  2. Substring Excel-functie
  3. VBA-subscript buiten bereik
  4. Excel ISNUMBER Formula

Categorie: