VBA kļūdu apstrāde - Ceļvedis kļūdu apstrādei programmā Excel VBA

Satura rādītājs

Excel VBA kļūdu apstrāde

VBA, strādājot ar kodiem, mēs varam saskarties ar dažāda veida kļūdām un to, kā novērst šīs kļūdas, sauc par kļūdu apstrādi, tagad sintaksē var būt dažas kļūdas, kas pats Excel to izceļ, bet, ja ir kāda kļūda kas ir ārpus diapazona vai kaut kas neeksistē excel dod mums uznirstošo logu par to pašu, ir svarīgi zināt, kurš kļūdas kods ir kādai kļūdai, lai identificētu kļūdu kodā.

Programmā Excel VBA, izpildot jebkuru kodu kopu, mēs iegūstam sava veida kļūdas. Dažas no šīm kļūdām ir sintakses kļūdas; dažas ir kļūdas, kuras nav izpildāmas. Sintakses kļūda ir tad, kad lietotājs ir pats izcēlis sarkanā krāsā. Bet, ja ir kāda cita veida izpildes laika kļūda, kā mēs ar to rīkojamies un kā mēs to pārsniedzam, to mēs aplūkosim šajā rakstā.

Izņemot sintakses kļūdas, izpildot jebkuru kodu kopu, ir jārīkojas arī ar pārējām darbības laika kļūdām. Pirmkārt, ļaujiet man minēt citu izpildlaika kļūdu piemēru. Apskatiet zemāk redzamo kodu,

Šis ir koda paraugs, kad tas tiks izpildīts, tas atgriezīs to, kas rakstīts msgbox funkcijā. Bet, kā mēs redzam, ka koda otrajā rindā ir 4/0, kas matemātiski nav iespējams, tāpēc tas atgriezīs izpildes laika kļūdu. Izpildīsim iepriekš minēto kodu un redzēsim kļūdu, kuru mēs saņemsim.

Šī ir kļūda, kas rodas, izpildot norādīto kodu. Tagad, kā rīkoties ar šo kļūdu, veic kļūdu apstrāde.

Ir divas kļūdu apstrādes metodes:

  1. Par kļūdu Goto un
  2. On Error Resume Next.

Paskaidrojums

Kā paskaidrots iepriekš, mēs iegūstam daudzu veidu kļūdas VBA. Daži no tiem ir sintakse, un citi ir izpildes laiks. Sintakses kļūdas jau ir iezīmētas sarkanā krāsā, piemēram, skatiet zemāk redzamo ekrānuzņēmumu,

Kamēr otra ir darbības laika kļūdas. Būtībā Excel darīs šādas trīs darbības: vai nu parādīs kļūdu, vai arī ignorēs šo kļūdu, vai arī parādīs noteiktu instrukciju kopu. Lai veiktu šādus uzdevumus, mums jāsniedz norādījumi, un to sauc par kļūdu apstrādi.

Kā rīkoties ar kļūdām VBA kodā?

1. piemērs

Pirmajam piemēram ņemsim pirmo kodu, kuru paņēmām kā paraugdemonstrējumu. Iepriekš minētajā piemērā mēs redzējām, ka kods nodrošina izpildes laika kļūdu otrajā msgbox funkcijā.

Pēc apakšfunkcijas atvēršanas uzrakstiet šādu kodu,

Kods:

Apakšparaugs () ieslēdzoties kļūdai, atsākt nākamo MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Tagad, izpildot iepriekš minēto kodu, mēs redzam, ka koda rinda, kurā ir kļūda, netiek izpildīta. Excel izlaiž šo rindu un atsāk darbu nākamajā rindā.

Ir vēl viena metode, kā rīkoties ar kļūdu, ir VBA Goto paziņojums. Mēs piedāvājam Excel kā galamērķi, uz kuru doties, atrodot kļūdu. Iepriekšējā kļūdu apstrādes koda vietā mēs ievietojām, pierakstiet šo kodu,

Kods:

Apakšparaugs () Kļūdā GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Mēs piešķiram Excel Az kā galamērķi, uz kuru doties, ja tajā tiek konstatēta kļūda. Tagad pēc msgbox uzrakstiet citu kodu, kā norādīts zemāk,

Kods:

Apakšparaugs () Kļūdā GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Gatavs: Iziet no apakšgrupas

Tagad mums jādefinē galamērķis az kā tas, kas tam jādara, kad Excel kodā atrod kļūdu.

Kods:

Apakšparaugs () Kļūdā GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Gatavs: Iziet no Sub az: MsgBox "Šī ir kļūda" & Kļūda.Apraksts Apakšsadaļa

Tagad, palaižot šo kodu, mēs redzam parādīto rezultātu.

Šis ir pirmais msg lodziņa rezultāts, un, tā kā mēs zinām, ka mūsu koda nākamajā rindā mums ir kļūda, redzēsim rezultātu, ko dos Excel.

Koda iepriekš aprakstītais kļūdas apraksts palīdz mums precīzi parādīt, kāda kļūda ir notikusi mūsu kodā.

2. piemērs

Mēs esam iemācījušies rīkoties ar kļūdām mūsu kodos. Apskatīsim vēl vienu piemēru, kā rīkoties ar kļūdām. Apsveriet šo kodu kā mūsu otro piemēru.

Mums ir nedaudz līdzīga kļūda no 1. piemēra. Kļūda ir d = i / b rindā. Tagad mēs rīkosimies ar šīm kļūdām, izmantojot divas iepriekš izskaidrotās metodes.

Pēc apakšfunkcijas atvēršanas uzrakstiet šādu kodu,

Kods:

2. apakšparaugs () Pēc kļūdas Atsākt nākamo bx Dim i kā veselu skaitli, b kā veselu skaitli, c kā veselu skaitli, d kā veselu skaitli i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End 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:

2. apakšparaugs () Par kļūdu GoTo bx Dim i kā vesels skaitlis, b kā vesels skaitlis, c kā vesels skaitlis, d kā vesels skaitlis i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Iziet apakšbx: MsgBox "Šī ir vēl viena kļūda" un kļūdas apraksts Apraksts beigu apakšdaļa

Tagad, kad mēs izpildām kodu, mēs varam redzēt, ka Excel vispirms dod mums vērtību C.

Tagad, veicot citu darbību, tas mums parādīs uzvedni, kuru mēs to norādījām, kad rodas kļūda.

Šādi mēs rīkojamies ar parastajām izpildlaika kļūdām programmā Excel VBA.

Atceramās lietas

Ir dažas lietas, kas mums jāatceras par kļūdu apstrādi:

  1. Kad kļūda tiek atsākta, tiek ignorēta kļūda.
  2. Ieslēdzot kļūdu, GoTo Gives izceļ galamērķi, sastopot kļūdu.
  3. Apraksts tiek izmantots, lai parādītu precīzu kļūdu, kas radusies lietotājam.

Interesanti raksti...