Uvod u VBA pogrešku prelijevanja

Ako se radi o pogrešci tijekom rada s VBA, susrećemo se s mnogim vrstama. Pogreške se nazivaju runtime pogreške kada su tijekom izvršenja koda naišle na pogrešku. Također, svaki kod ima određeni kod koji mu je dodijeljen u programiranju VBA. Izvrsno, takva je pogreška VBA Overflow. Kod ove pogreške je pogreška 6 pokretanja, što znači preljev u programiranju VBA. O ovoj pogrešci naučit ćemo u ovom članku.

Sada znamo što je ta pogreška prelijevanja vrsta pogreške, sada razumemo što ta greška znači. Ako bilo koju varijablu izjavimo kao određenu vrstu podataka, a vrijednost varijable premašuje granicu podatkovnog tipa varijable, dobivamo pogrešku zbog prelijevanja. Na primjer, ako definiramo varijablu kao cijeli broj i znamo da cijeli broj može sadržavati vrijednosti do 32767 za pozitivne brojeve i -32768 za negativne brojeve. Dakle, ako pružimo bilo koji ulaz izvan tog raspona, naići ćemo na pogrešku prelijevanja u VBA.

Pogreška overflowa u laičkom smislu znači da preopterećujemo vrstu podataka vrijednostima koje on može držati. Takvi će nas slučajevi naići na ovu pogrešku. Da bi izbjegli ovu pogrešku, moramo biti svjesni kakvu vrstu podataka koristimo kako bismo je mogli spriječiti.

Kroz razne ćemo primjere vidjeti kako ćemo kod različitih tipova podataka možda naići na ovu pogrešku.

Kako se koristi VBA pogreška prelijevanja u Excelu?

Naučit ćemo kako koristiti VBA funkciju pogreške prelijevanja s nekoliko primjera u excelu.

Možete preuzeti ovaj VBA predložak Excel OverFlow Error Excel ovdje - VBA predložak OverFlow Error Excel

Primjer br. 1 - Greška prelijevanja

Za prvi primjer koristimo vrstu podataka Integer. Pokušajmo prelijevati vrijednosti tako da ih varijable ne mogu pohraniti i vidjeti grešku u kojoj nailazimo.

Slijedite dolje navedene korake za upotrebu funkcije VBA Overflow Error u Excelu:

Korak 1: Za početak započeti s VBA prvo što moramo učiniti je omogućiti karticu našeg programera, a zatim kliknite na nju da otvorite VB Editor iz opcije Visual Basic kao što je prikazano na slici ispod,

Korak 2: Kliknite na njega i umetnite modul na sljedeći način, Nakon što kliknemo na modul. Dvaput kliknite na njega i otvorit će nam se još jedan prozor u koji ćemo napisati svoj kod.

Korak 3 : Vidjet ćemo prazan prozor na desnoj strani, deklarirati podfunkciju i tako pokrećemo makronaredbe na sljedeći način,

Kodirati:

 Pod uzorak () Kraj Sub 

Korak 4: Deklarirajte varijablu kao cijeli broj da bi ona za nas mogla sadržavati cijeli broj,

Kodirati:

 Pod uzorak () Dim A kao cjeloviti kraj Sub 

Korak 5: Sada u varijabli Spremite takvu vrijednost koja će prelijevati vrstu podataka na sljedeći način,

Kodirati:

 Sub Uzorak () Dim A kao cijeli broj A = 4896 * 5000 Krajnji sub 

Korak 6: Sada prikažite vrijednost A pomoću msgbox funkcije,

Kodirati:

 Sub Uzorak () Dim A kao cijeli broj A = 4896 * 5000 MsgBox A Kraj Sub 

Korak 7: Pokrenite gornji kôd i pogledajte koji smo rezultat,

Ovu smo pogrešku dobili jer je 4896 * 5000 prekoračenje pozitivnog broja za cijeli broj podataka koji treba držati, a varijabla A je preplavljena ovom vrijednošću pa nailazimo na ovu pogrešku.

Primjer br. 2 - Pogreška prelijevanja

Sada u ovom primjeru prenesite BYTE vrstu podataka. Znamo da bajtni podaci mogu sadržavati vrijednosti od 0 do 255, ali bilo koje vrijednosti osim tog raspona dat će nam grešku. Doznajmo.

Korak 1: Već smo umetnuli svoj modul, možemo raditi na istom ili stvoriti novi. Ali radimo na istom modulu koji smo umetnuli. Dvaput kliknite modul da biste ponovno ušli u prozor koda,

Korak 2: Objavite još jednu podfunkciju na sljedeći način,

Kodirati:

 Sub Sample1 () Kraj Sub 

Korak 3: Deklarirajte varijablu kao vrstu podataka BYTE na sljedeći način,

Kodirati:

 Sub Sample1 () Dim A Kao kraj bajta Sub 

Korak 4: Sada vrijednost varijable Sprema iznad 255 kako slijedi,

Kodirati:

 Sub Uzorak1 () Dim A Kao bajt A = 266 Krajnji Sub 

Korak 5: Upotrijebite msgbox funkciju za prikaz vrijednosti A,

Kodirati:

 Sub Uzorak1 () Dim A kao bajt A = 266 MsgBox A Kraj Sub 

Korak 6: Pokrenimo gornji kôd pritiskom na F5 i vidimo rezultat,

7. korak: Pokušajmo promijeniti vrijednost od A do 244 i ponovno pokrenuti kod da bismo vidjeli rezultat,

Kodirati:

 Sub Uzorak1 () Dim A kao bajt A = 244 MsgBox A Kraj Sub 

Korak 8: Kad ponovo pokrenemo kôd, vidimo sljedeći rezultat,

Kada prvi put pokrećemo kodnu varijablu A ima vrijednosti više od raspona koji može imati BYTE vrsta podataka, ali u drugom stupnju, varijabla A ima podatke u svom rasponu podataka, tako da nismo naišli na pogrešku prelijevanja.

Primjer br. 3 - Greška prelijevanja

Koristimo sada LONG tip podataka kao primjer, jer se najčešće koristi tip podataka među programerima.

Korak 1: Ponovo ćemo raditi u istom modulu koji smo ranije umetnuli. Trebamo samo dvaput kliknuti modul i već smo u njemu.

Korak 2: Proglasite potfunkciju kao što je prikazano na snimci zaslona.

Kodirati:

 Sub Sample2 () Kraj Sub 

Korak 3: Deklarirajte varijablu kao LONG vrstu podataka na sljedeći način.

Kodirati:

 Sub Sample2 () Dim A kao dugotrajni Sub 

Korak 4: Sada slični gore navedenim primjerima dopustimo da prelijemo ovu varijablu čineći je da drži vrijednosti iznad svog raspona na sljedeći način.

Kodirati:

 Sub Uzorak2 () Dim A As Long A = 2000 * 365 Kraj Sub 

Korak 5: Upotrijebite msgbox funkciju za prikaz vrijednosti A na sljedeći način.

Kodirati:

 Sub Uzorak2 () Dim A kao dugačak A = 2000 * 365 MsgBox A Kraj Sub 

Korak 6: Kliknite gornju tipku Run i vidimo da nailazimo na pogrešku prelijevanja.

Korak 7: Sada postoji metoda za prevladavanje ove pogreške u dugoj vrsti podataka pomoću CLNG funkcije na sljedeći način.

Kodirati:

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

Korak 8: Ako ponovo pokrenemo kod, možemo vidjeti sljedeći rezultat.

Što je sada radila CLNG funkcija? Vrijednost je pretvorila u dugi cijeli broj koji varijabla može sadržavati.

Kako prevladati pogrešku prelijevanja u VBA

Kada u VBA naiđemo na pogrešku prelijevanja, što znači da bilo koja od naših varijabli, više ne sadrži neke vrijednosti koje ne može zadržati. Moramo identificirati varijablu i ispraviti je. Također, imamo funkciju CLNG za duge vrste podataka koje nam pomažu. Ali poznavanje naše vrste podataka zapravo pomaže.

Stvari koje treba zapamtiti

Postoje neke stvari koje moramo zapamtiti o pogrešci overflowa u VBA:

  • Pogreška preljeva pogreška je vremena pokretanja.
  • Kôd pogreške za pogrešku prelijevanja je 6.
  • Da bismo prevladali pogrešku prelijevanja moramo znati koja vrsta podataka može sadržavati koliko vrijednosti.
  • CLNG funkcija pomaže kod pogreške pri preljevu za duge vrste podataka.

Preporučeni članci

Ovo je vodič za VBA pogrešku prelijevanja. Ovdje smo raspravljali o tome kako koristiti funkciju Excel VBA Overflow Error Function zajedno s praktičnim primjerima i download-ovim Excel predloška. Možete i pregledati naše druge predložene članke -

  1. Kopiraj funkciju lijepljenja u VBA
  2. Podstring Excel funkcija
  3. VBA pretplata izvan dometa
  4. Formula ISNUMBER Formula

Kategorija: