VBA rješavanje pogrešaka - Vodič za rukovanje pogreškama u programu Excel VBA

Obrada pogrešaka u programu Excel VBA

U VBA-u kada radimo s kodovima možemo naići na mnogo različitih vrsta pogrešaka, a način rješavanja tih pogrešaka poznat je pod nazivom Rukovanje pogreškama, sada u sintaksi mogu biti neke pogreške koje same Excel ističu, ali kada postoji neka pogreška što je izvan dosega ili nešto što ne postoji, excel nam daje iskačuće prozore za isto, važno je znati koji je kôd pogreške za koju pogrešku kako bismo prepoznali grešku u kodu.

U programu Excel VBA, dok izvršavamo bilo koji skup kodova, dobivamo nekakve pogreške. Neke od tih pogrešaka sintaksne su pogreške; neke su pogreške koje se ne mogu izvršiti. Sintaksna pogreška je kada je korisnik napravio, a sam Excel označava crvenom bojom. No, ako postoji bilo koja druga vrsta pogreške u vremenu izvođenja, kako ćemo se nositi s njom i kako preći preko toga, ono ćemo opisati u ovom članku.

Osim sintaksnih pogrešaka, ostale pogreške u vremenu izvođenja trebaju se rješavati tijekom izvršavanja bilo kojeg skupa kodova. Prvo ću vam dati primjer kako se javlja druga pogreška u izvršavanju. Pogledajte donji kod,

Ovo je uzorak koda, kada se izvrši, vratit će ono što je napisano u funkciji msgbox. Ali kao što možemo vidjeti da u drugom retku koda postoji 4/0, što matematički nije moguće, pa će se vratiti pogreška vremena izvođenja. Izvršimo gornji kod i vidjet ćemo pogrešku koju ćemo dobiti.

To je pogreška koju imamo tijekom izvršavanja zadanog koda. E sad, kako se nositi s ovom pogreškom, napravilo je Rukovanje pogreškama.

Postoje dvije metode za rješavanje pogrešaka, a to su:

  1. O pogrešci Goto i
  2. Na grešci Nastavi dalje.

Obrazloženje

Kao što je gore objašnjeno, u VBA dobivamo mnoge vrste pogrešaka. Neki su sintaksa, a neki vrijeme izvođenja. Sintaksne pogreške već su označene crvenom bojom, na primjer, pogledajte ispod snimke zaslona,

Dok je druga pogreške vremena izvođenja. U osnovi, Excel će napraviti sljedeće tri stvari, ili će pokazati pogrešku ili će zanemariti tu pogrešku, ili će pokazati određeni skup uputa. Da bismo izvršili takve zadatke, trebamo dati upute, a to se naziva Rukovanje pogreškama.

Kako postupati s pogreškama u VBA kodu?

Primjer # 1

Za prvi primjer, uzmimo prvi kôd koji smo uzeli kao demonstraciju. U gornjem primjeru vidjeli smo da kod daje pogrešku u vremenu izvođenja kod druge funkcije msgbox.

Nakon otvaranja podfunkcije napišite sljedeći kod,

Kodirati:

Poduzorak () O grešci Nastavi Dalje MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Kraj Sub

Sada kada izvršavamo gornji kod, vidimo da se linija koda koja ima pogrešku ne izvršava. Excel preskače taj redak i nastavlja se u sljedećem retku.

Postoji još jedna metoda za rješavanje pogreške, a to je VBA Goto Statement. Excel pružamo kao odredište na koje treba otići kada pronađe pogrešku. Umjesto prethodnog koda za rukovanje pogreškama, umetnuli smo, zapišite sljedeći kôd,

Kodirati:

Poduzorak () O pogrešci Idite na MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Kraj Sub

Dajemo excel Az kao odredište na koje treba ići ako pronađe pogrešku. Sada nakon msgboxa, napišite drugi kod kao dolje,

Kodirati:

Poduzorak () O pogrešci Idi na az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Gotovo: Izađi iz podm.

Sada moramo odrediti odredište az kao ono što treba učiniti kada excel pronađe pogrešku u kodu.

Kodirati:

Poduzorak () O pogrešci Idi na az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Gotovo: Izađi iz pod az: MsgBox "Ovo je pogreška" & Err.Description End Sub

Sada kada pokrenemo ovaj kod, vidimo prikazan rezultat.

Ovo je prvi rezultat okvira za poruke, a kako znamo da imamo pogrešku u sljedećem retku koda, pogledajmo rezultat što će dati Excel.

Opis greške u kodu pomaže nam da pokažemo točno što se dogodilo u našem kodu.

Primjer # 2

Naučili smo kako postupati s pogreškama u našim kodovima. Pogledajmo još jedan primjer postupanja s pogreškama. Uzmite u obzir sljedeći kod kao naš drugi primjer.

Imamo nešto sličnu pogrešku iz primjera 1. Pogreška je u retku d = i / b. Sada ćemo te pogreške riješiti pomoću dvije gore opisane metode.

Nakon otvaranja podfunkcije napišite sljedeći kod,

Kodirati:

Poduzorak2 () O grešci Nastavi sljedeći bx Dim i Kao cjeloviti, b Kao cjeloviti, c Kao cjeloviti, d Kao cjeloviti i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d Završi Sub

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Sub Sample2 () O pogrešci Idemo na bx Dim i Kao cjelovito, b Kao cjelovito, c Kao cjelovito, d Kao cjelovito i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Izlaz iz Sub bx: MsgBox "Ovo je još jedna pogreška" & Err.Description End Sub

Sada kada izvršimo kod, možemo vidjeti da nam excel prvo daje vrijednost za C.

Sada ćemo u sljedećem koraku dobiti upit koji smo mu dali kad naiđe na pogrešku.

Na ovaj se način rješavamo uobičajene pogreške tijekom izvođenja u programu Excel VBA.

Stvari koje treba zapamtiti

Nekoliko stvari moramo imati na umu u vezi s rukovanjem pogreškama:

  1. Na sljedećem nastavku greške, ignorira pogrešku.
  2. On Error GoTo Daje Excelu odredište kada naiđe na pogrešku.
  3. Opis se koristi za prikaz točne pogreške koja se dogodila korisniku.

Zanimljivi članci...