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

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, kuras Excel pats 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 to apstrādājam 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 izpildīts atgriezīs msgbox funkcijā rakstīto. 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žas ir sintakse, bet dažas - izpildes laiks. Sintakses kļūdas jau ir iezīmētas sarkanā krāsā, piemēram, skatiet zemāk redzamo ekrānuzņēmumu,

Kamēr otrs 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 kopumu. 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ā?

Šo VBA kļūdu apstrādes Excel veidni varat lejupielādēt šeit - VBA kļūdu apstrādes Excel veidne

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, 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 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 tā atrod kļūdu. 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 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 

Tagad, izpildot kodu, mēs varam redzēt, ka tas ignorē otro rindu un vienkārši parāda C vērtību.

Iepriekšminētais kļūdu apstrādātājs tika atsākts pēc tam, tagad mēs izmantosim Go to, kur mēs teiksim Excel mērķim doties, kad rodas kļūda. Pierakstiet šo kodu,

Kods:

 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

Bx ir galamērķis, kas tiek dots, kad rodas kļūda pēc tam, kad msgbox D ir pierakstījis šādu kodu,

Kods:

 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 no apakšsadaļas 

Tagad mums jādefinē galamērķis Bx, kas tam jādara, kad rodas kļūda. Tāpēc pierakstiet šādu kodu,

Kods:

 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 no 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. On Error Resume Next ignorē kļūdu.
  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.

$config[zx-auto] not found$config[zx-overlay] not found