VBA Greška

VBA On Error jednostavna je metoda za rukovanje neočekivanim iznimkama u Excelu Macros. Poznato je da ne možemo pisati kod bez ikakve pogreške. Ponekad pisanje velikog koda može nam dati grešku čak i u vrijeme sastavljanja. Da bi izbjegli ovu vrstu situacije, dodali smo poruku o pogrešci koja će nam umjesto davanja ispravnog odgovora ili koda pogreške prikazati poruku s kodom pogreške. To bi izgledalo kao da smo dobili rezultate našeg izračuna, ali utisnut će kôd pogreške.

Kako koristiti Excel VBA na Izjavi o pogrešci u Excelu?

U VBA postoje 3 načina pogreške. Shvatimo na različite načine s nekim primjerima.

Primjer 1

Prva vrsta pogreške je pogreška u sastavljanju koda koja dolazi kada kod nije nepriznata ili nemoguće varijable. Da bismo razumjeli više, upotrijebit ćemo jednostavan matematički izraz podjele. Za to idite na izbornik Umetanje VBA i odaberite Modul kao što je prikazano u nastavku.

Sada otvorite potkategoriju i dodajte bilo koje ime. Kao što koristimo On Error, tako smo i imenovali isto.

 Sub OnError () Kraj Sub 

Sada definirajte bilo koja 2 ili 3 cijela broja. Ovdje imamo X i Y kao Integers.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni kraj pot 

Kao što je gore objašnjeno, izračunat ćemo matematički izraz podjele. Za X ćemo staviti znak u Numerator i podijeliti ga 0. I Y će biti 20/2 što je potpuni broj.

 Sub OnError () Dim X kao cijeli broj, Y kao cjelobrojni X = test / 0 Y = 20/2 Krajnji sub 

Sada pokrenite kôd pomoću tipke F5 ili klikom na gumb za reprodukciju kao što je prikazano u nastavku. Dobit ćemo pogrešku izvođenja 6, koja prikazuje pogrešku Text over number.

Sada da nadjačamo ovu pogrešku, dodaćemo jedan redak Ponovno nastavi grešku Dalje prije nego što napišemo matematički kod. Preskočit će kôd pogreške, ali nećemo moći vidjeti ishod drugog matematičkog koda. Ova poruka skriva pogrešku samo ako su kodovi različitih linija, kako je dolje prikazano. Sada pokušajte pokrenuti i kod.

 Sub OnError () Dim X kao cjelobrojni, Y kao cijeli broj na pogrešci Nastavi Slijedeći X = Test / 0 Y = 20/2 MsgBox X MsgBox Y Kraj Pot 

Sada da nadjačamo ovu pogrešku, dodaćemo jedan redak Ponovno nastavi grešku Dalje prije nego što napišemo matematički kod. Preskočit će kôd pogreške, ali nećemo moći vidjeti ishod drugog matematičkog koda. Ova poruka skriva pogrešku samo ako su kodovi različitih linija, kako je dolje prikazano. Sada pokušajte pokrenuti i kod.

Primjer 2

U ovom ćemo primjeru razmotriti onu matematičku podjelu koja daje beskonačan rezultat, ali kodiranjem će dobiti # DIV / 0 rezultat. Da bismo to pokazali razmotrit ćemo još jedan cijeli broj Z zajedno s X i Y u podkategoriji kao što je prikazano u nastavku.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni kraj pot 

Sada uokvirite sve cjelobrojne brojeve X, Y i Z s matematičkim izrazom dijeljenja i za ispis koristite MsgBox funkciju u VBA rezultata svakog broja.

U nastavku za Integer X podijelili smo 10 na 0, 20 na 2 i 30 na 4.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z Kraj Sub 

Sada pokrenite kôd pomoću tipke F5 ili ručno kako je prikazano u nastavku.

Kao što vidimo na gornjoj snimci zaslona Pogreška 11 u vremenu snimanja, što znači da je greška povezana s brojem. Sada da prevladaju ovo dodajte jedan redak Na pogrešci Nastavite Dalje prije matematičkog izraza kao što je prikazano u nastavku.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni na pogrešci Nastavi Dalje X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z Kraj Sub 

Ako pokrenemo kôd, za prvi cijeli broj X dobit ćemo nulu, a za Y i Z dobit ćemo odgovore za podjelu kao što je prikazano u nastavku.

Primjer 3

Druga vrsta pogreške je vidljiva kada smo unijeli pogrešan unos podataka u kod. Za to ćemo razmotriti 3 cjelobrojne brojeve X, Y i Z otvaranjem potkategorije u VBA kao što je prikazano u nastavku.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni kraj pot 

Sada također razmotrimo istu matematičku podjelu koju smo vidjeli u gornjem primjeru.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z Kraj Sub 

Ako pokrenemo kôd, dobit ćemo istu poruku o pogrešci pokretanja 11.

Sada za poništavanje ove pogreške koristite tekst On Error GoTo s riječi "" Rezultat za preskakanje poruke o pogrešci i dobivanje rezultata koji funkcionira u redu kao što je prikazano u nastavku.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni na pogrešci GoTo ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z Kraj Sub 

Sada ponovo pokrenite kod. Dobit ćemo isti rezultat kao u prethodnom primjeru.

Na grešku GoTo ZResult nam pomaže izravno skočiti spomenuti cijeli rezultat bod kao što smo učinili za cijeli broj Z.

Primjer 4

U trećoj vrsti pogreške kada pokrećemo kôd i VBA nije u stanju razumjeti liniju koda. To se može učiniti uz pomoć koda On Error Resume Next, zajedno s MsgBox Err.Number . Razmotrite iste podatke kao i u gornjim primjerima. Ponovno ćemo vidjeti ista 3 cjelobrojna broja X, Y i Z kao što je prikazano u nastavku.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni kraj pot 

A za ispis rezultata rezultata dopustite okvire s porukama za sve Integre kao izlaz.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z Kraj Sub 

Ako pokrenemo cijeli kod, dobit ćemo poruku o pogrešci matematičke pogreške 11.

Sada za nadvladavanje ove pogreške upotrijebit ćemo On Error Resume Next.

 Sub OnError () Dim X kao cjelobrojni, Y kao cjelobrojni, Z kao cjelobrojni na pogrešci Nastavi Dalje X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z Kraj Sub 

I pokrenite kod. To će koristiti rezultate na važećim matematičkim linijama kao što je prikazano u nastavku.

Sada dodajte liniju koda ZResult prije matematičkog izraza cjelobrojne podjele Z i dodajte liniju koda MsgBox Err.Number na kraju koda kao što je prikazano u nastavku.

 Sub OnError () Dim X kao cijeli broj, Y kao cjelobrojni broj, Z kao cjelobrojni korisnik na pogrešci Nastavi Slijedeći X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Number End Sub 

Sada pokrenite kôd pomoću tipke F5 ili pritiskom na tipku za reprodukciju kao što je prikazano u nastavku.

Kao što možemo vidjeti na gornjim snimkama zaslona. Prvo polje ima 0, što nadjačava pogrešan matematički izraz. Drugi i treći rezultat dijeljenja su Y i Z cijeli brojevi. I zadnja kutija poruka sadrži kôd pogreške pogreške 11 koji je vjerojatno kod pogreške u izrazima podjele X cijelog broja.

Pros VBA na pogreške

  • Možemo izračunati bilo koju matematičku formulu, čak i ako je netočna.
  • Za veće strukture kodiranja gdje postoje šanse ili imaju pogreške, upotreba ovih metoda može dati ispravan rezultat čak i među linijama kodova.
  • To daje bolji rezultat u odnosu na rezultat dobiven normalnim excel proračunima.

Stvari koje treba zapamtiti

  • Uvijek spremite datoteku u datoteku Excela s makro omogućenom podrškom kako bismo mogli koristiti višestruko i više puta stvoreni VBA kôd.
  • Uvijek sastavite pisani kod prije primjene bilo kojeg zahtjeva za excel.
  • Ako je potrebno, dodijelite pisani kod bilo kojem gumbu kako bismo brzo mogli kliknuti na gumb i pokrenuti ga.

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

Preporučeni članci

Ovo je vodič za Excel VBA o pogrešci. Ovdje smo raspravljali o tome kako koristiti VBA Izjavu o pogrešci zajedno s nekoliko praktičnih primjera i preuzeti Excel predložak. Možete i pregledati ostale naše predložene članke -

  1. Kako se koristi VBA TRIM funkcija?
  2. Format broja u VBA
  3. Vodič za Excel VBA učiniti dok petlja
  4. Kako koristiti VBA funkciju pronalaska?

Kategorija: