VBA On Error GoTo - Kļūdu paziņojumu veidi VBA

Satura rādītājs

Excel VBA On Error GoTo

Kļūdas ir neatņemama jebkuras kodēšanas valodas daļa, un VBA makro neatšķiras no tā. Manuprāt, kļūdas rašanās iemesls ir 90% no paveiktā darba, un 10% ir tas, kā novērst šo kļūdu. Katrā kodēšanas valodā kodētāji savā kodēšanā izmanto savu kļūdu apstrādes veidu, tāpēc arī mēs to izmantojam VBA kodēšanā. Bieži vien mums ir jāignorē kļūda vai bieži mēs vēlamies pievērsties konkrētām lietām, kad rodas kļūda. “On Error” ir paziņojums, kas mums jāizmanto VBA, lai apstrādātu kļūdas.

Šim paziņojumam ir trīs veidu apgalvojumi, un zemāk ir saraksts.

  1. Par kļūdu Goto 0
  2. On Error Goto (etiķete)
  3. On Error Resume Next

Šajā rakstā mēs redzēsim, kā šie trīs apgalvojumi tiek izmantoti VBA kodēšanā, lai apstrādātu jebkāda veida kļūdas.

Kā lietot VBA kļūdu paziņojumos?

# 1 - ieslēdzot kļūdu, atsākt nākamo

Kā teikts pašā paziņojumā, “On Error Resume Next” nozīmē ikreiz, kad rodas kļūda kodā, “atsākt” nākamo koda rindu, ignorējot kļūdas līnijas kodu. Tagad ieskatieties zemāk redzamajā kodā.

Tālāk esošajā kodā esmu pieminējis darblapu nosaukumus un lūdzis ievadīt vērtību pirmajā šūnā kā “Kļūdu pārbaude”.

Kods:

Sub On_Error_Resume_Next () darblapas ("Ws 1"). Atlasiet diapazonu ("A1"). Vērtība = "Error Testing" darblapas ("Ws 2"). Atlasiet diapazonu ("A1"). Value = "Error Testing" darblapas ( "Ws 3"). Atlasiet diapazonu ("A1"). Vērtība = "Kļūdu pārbaude" darblapas ("Ws 4"). Atlasiet diapazonu ("A1"). Vērtība = "Kļūdu pārbaude" End Sub

Tagad manā darbgrāmatā ir šādas darblapas.

  • Es palaidīšu kodu un redzēšu, kas notiks.
  • Mēs saņēmām kļūdu “Subscript Out of Range”, noklikšķiniet uz “Debug”, lai redzētu, kurā rindā mēs saņēmām kļūdu.
  • Tātad rindā “Darblapas (“ Ws 3 ”). Atlasiet, mēs saņēmām kļūdu. Tas ir tāpēc, ka mūsu darbgrāmatā nav darblapas ar nosaukumu “Ws 3”, tāpēc radās kļūda.

Šādos gadījumos mēs varam ignorēt kļūdu un atjaunot koda izpildi nākamajā rindā. Šeit redzams mūsu kļūdu apstrādātājs “On Error Resume Next”.

  • Viss, kas mums jādara, ir makro sākumā pievienot rindiņu “On Error Resume Next”.

Tagad izpildiet šo kodu, un tajā netiks rādīts kļūdas ziņojums, jo ikreiz, kad kods saskaras ar kļūdu, tas kļūdu ignorēs un atgriezīsies nākamajā koda rindā.

# 2 - ieslēgta kļūda GoTo 0

Tas nav kļūdu apstrādātājs, drīzāk kļūdas ziņojumu iespējotājs pēc kļūdas ziņojuma atspējošanas, izmantojot paziņojumu “On Error Resume Next”.

Ja izmantojat paziņojumu “Nākamais atsākt”, VBA makro sāk ignorēt jebkādas kļūdas, kas rodas, un turpina turpināt nākamo kodu rindu. Bet mēs nevēlamies, lai tas notiek visu laiku, jo dažas kļūdas mums ir jāaplūko apzināti, bet citām - paziņojums.

Ja kāda konkrēta kodu kopa rada kļūdu šajā koda blokā, tikai mums ir jāignorē kļūdas citās koda daļās. Mēs nevēlamies ignorēt kļūdu.

  • Apskatiet zemāk esošo attēlu, kā izmantot paziņojumu “On Error GoTo 0”.

Tāpēc tagad kļūdas netiks ignorētas, līdz kods atradīs kļūdas paziņotāju iespējotāju “On Error GoTo 0”, tiklīdz šī koda rinda atkal izpildīs makro un sāks mest kļūdu ziņojumus kā parasti.

# 3 - GoTo etiķetes kļūda

Mēs esam redzējuši, kā ignorēt kļūdu un kā iespējot atpakaļ paziņojumu par kļūdu. Tagad, izmantojot šo metodi, mēs varam pāriet uz noteiktu koda rindu.

Šajā metodē “Label” nozīmē, ka šai etiķetei mēs varam piešķirt jebkuru nosaukumu, un tā pati etiķete jānorāda arī vajadzīgajā koda rindā.

Piemēram, aplūkojiet to pašu kodu no iepriekš minētā piemēra.

Tagad izpildīsim koda rindu pa rindai, nospiežot funkciju taustiņu F8.

Tagad makro nolasīs kļūdu apstrādātāja paziņojumu; nospiediet taustiņu F8 izpildiet pirmos 2 darblapas kodu.

Tagad makro gatavojas izpildīt trešo darblapas kodu, kura darbgrāmatā nav, nospiediet taustiņu F8 un redziet, kas notiek.

Tā kā makro zemāk esošajā koda rindā radās kļūda, tas ir pārgājis uz kļūdu apstrādātāja iezīmi “ErrorMessage”, kas tika aprakstīts, izmantojot paziņojumu “On Error GoTo (Label)”.

Tagad ziņojumu lodziņā ziņojums tiks parādīts kā “Notika kļūda un izejot no makro”.

Atceramās lietas

  • Vba On Error GoTo 0 vēlreiz iespējos paziņojumu par kļūdu, tāpēc neaizmirstiet to pievienot pēc kļūdu apstrādātāja piegādes.
  • Jums ir jābūt pilnīgi pārliecinātam, kurā koda daļā vēlaties ignorēt kļūdu, tāpēc pievienojiet kļūdu apstrādātāju tikai šim koda blokam.

Interesanti raksti...