Kā lietot paziņojumu OnError programmā Excel 2016 VBA

Ja jums ir jārisina kļūdas programmā Excel VBA, varat izmantot paziņojumu OnError. Tomēr vispirms ir jāzina dažas lietas. Paziņojumu On Error varat izmantot trīs veidos.

Sintakse Ko tas dara
Par kļūdu GoTo etiķeti Pēc šī priekšraksta izpildes VBA atsāk izpildi no
priekšraksta, kas seko norādītajai iezīmei. Aiz
etiķetes jāiekļauj kols, lai VBA to atpazītu kā etiķeti.
Par kļūdu GoTo 0 Pēc šī paziņojuma izpildes VBA atsāk savu parasto
kļūdu pārbaudes darbību. Izmantojiet šo paziņojumu pēc kāda
cita paziņojuma On Error izmantošanas vai ja vēlaties
savā procedūrā noņemt kļūdu apstrādi .
Kļūdas gadījumā atsākt nākamo Pēc šī paziņojuma izpildes VBA vienkārši ignorē visas kļūdas
un atsāk izpildi ar nākamo paziņojumu.

Atsākšana pēc kļūdas

Dažos gadījumos jūs vienkārši vēlaties, lai rutīna tiktu graciozi beigusies, kad rodas kļūda. Piemēram, varat parādīt ziņojumu, kurā aprakstīta kļūda, un pēc tam iziet no procedūras. (Iepriekš parādītajā EnterSquareRoot5 piemērā šī metode tiek izmantota.) Citos gadījumos, ja iespējams, vēlaties atkopt kļūdu.

Lai atgūtu kļūdu, ir jāizmanto atsākšanas paziņojums. Tas izdzēš kļūdas stāvokli un ļauj turpināt izpildi noteiktā vietā. Paziņojumu CV varat izmantot trīs veidos.

Sintakse Ko tas dara
Turpināt Izpilde tiek atsākta ar paziņojumu, kas izraisīja kļūdu. Izmantojiet
to, ja kļūdu apstrādes kods novērš problēmu un
ir pareizi turpināt.
Atsākt Nākamo Izpilde tiek atsākta ar paziņojumu tūlīt pēc
paziņojuma, kas izraisīja kļūdu. Tas būtībā ignorē
kļūdu.
Atsākšanas etiķete Izpilde tiek atsākta no jūsu norādītās etiķetes .

Tālāk sniegtajā piemērā tiek izmantots priekšraksts Resume pēc kļūdas rašanās:

Sub EnterSquareRoot6()
  Dim Num kā variants
  Dim Msg As String
  Dim Ans kā vesels skaitlis
Mēģini vēlreiz:
Iestatiet kļūdu apstrādi
  Par kļūdu GoTo BadEntry
Pieprasīt vērtību
  Skaitlis = InputBox (“Ievadiet vērtību”)
  Ja Cipars = ““ Tad izejiet no apakšpunkta
' Ievietojiet kvadrātsakni
  ActiveCell.Value = kvadrāts(skaits)
  Iziet Sub
BadEntry:
  Msg = Err.Number & ": " & Error (Err.Number)
  Msg = Msg & vbNewLine & vbNewLine
  Msg = Ziņojums & "Pārliecinieties, vai ir atlasīts diapazons, "
  Msg = Ziņojums & "lapa nav aizsargāta",
  Msg = Msg & "un jūs ievadāt nenegatīvu vērtību."
  Msg = Msg & vbNewLine & vbNewLine & "Vai mēģināt vēlreiz?"
  Ans = MsgBox (Ziņojums, vbYesNo + vbCritical)
  Ja Ans = vbYes, atsāciet mēģinājumu vēlreiz
Beigu apakš

Šai procedūrai ir cits apzīmējums: TryAgain. Ja rodas kļūda, izpilde turpinās ar BadEntry etiķeti, un kods parāda tālāk redzamo ziņojumu. Ja lietotājs atbild, noklikšķinot uz Jā, tiek aktivizēts paziņojums Atsākt un izpilde tiek atgriezta uz marķējumu TryAgain. Ja lietotājs noklikšķina uz Nē, procedūra beidzas.

Kā lietot paziņojumu OnError programmā Excel 2016 VBA

Ja rodas kļūda, lietotājs var izlemt, vai mēģināt vēlreiz.

Ņemiet vērā, ka kļūdas ziņojumā ir iekļauts arī kļūdas numurs, kā arī “oficiālais” kļūdas apraksts.

Paziņojums Resume izdzēš kļūdas stāvokli pirms turpināt. Lai to redzētu, iepriekšējā piemērā mēģiniet aizstāt priekšrakstu, kas ir pirmais līdz pēdējam:

Ja Ans = vbYes, tad dodieties uz Mēģiniet vēlreiz

Kods nedarbojas pareizi, ja izmantojat GoTo, nevis Resume. Lai demonstrētu, ievadiet negatīvu skaitli. Jūs saņemat kļūdas uzvedni. Noklikšķiniet uz Jā, lai mēģinātu vēlreiz, un pēc tam ievadiet citu negatīvu skaitli. Šī otrā kļūda nav iesprostoti, jo netika notīrīts sākotnējais kļūdas stāvoklis.

Īsumā, apstrādājot kļūdu

Lai palīdzētu jums saglabāt visu šo kļūdu apstrādi, šeit ir ātrs un netīrs kopsavilkums. Kļūdu apstrādes koda blokam ir šādas īpašības:

  • Tas sākas tūlīt pēc etiķetes, kas norādīta paziņojumā On Error.

  • Tas ir jāsasniedz jūsu makro tikai tad, ja rodas kļūda. Tas nozīmē, ka tieši pirms etiķetes ir jāizmanto priekšraksts, piemēram, Exit Sub vai Exit Function.

  • Tam var būt nepieciešams CV paziņojums. Ja izvēlaties nepārtraukt procedūru, kad rodas kļūda, pirms atgriešanās pie galvenā koda ir jāizpilda priekšraksts Resume.

Zinot, kad ignorēt kļūdas

Dažos gadījumos ir pilnīgi pareizi kļūdas ignorēt. Tieši tad stājas spēkā paziņojums On Error Resume Next.

Nākamajā piemērā tiek veikta katra atlasītā diapazona šūna un vērtība tiek pārvērsta tās kvadrātsaknē. Šī procedūra ģenerē kļūdas ziņojumu, ja kādā atlases šūnā ir negatīvs skaitlis vai teksts:

Sub SelectionSqrt()
  Aptumšot šūnu kā diapazonu
  Ja TypeName(Atlase) <> “Diapazons”, tad izejiet no apakšdaļas
  Katrai atlasītajai šūnai
    šūna.Vērtība = Sqr(šūna.vērtība)
  Nākamā šūna
Beigu apakš

Šādā gadījumā, iespējams, vēlēsities vienkārši izlaist jebkuru šūnu, kurā ir vērtība, kuru nevar pārvērst kvadrātsaknē. Varat izveidot visu veidu kļūdu pārbaudes iespējas, izmantojot If-Then struktūras, taču varat izstrādāt labāku (un vienkāršāku) risinājumu, vienkārši ignorējot radušās kļūdas.

To panāk, izmantojot paziņojumu par kļūdu, atsākt nākamo:

Sub SelectionSqrt()
  Aptumšot šūnu kā diapazonu
  Ja TypeName(Atlase) <> “Diapazons”, tad izejiet no apakšdaļas
  Kļūdas gadījumā atsākt nākamo
  Katrai atlasītajai šūnai
    šūna.Vērtība = Sqr(šūna.vērtība)
  Nākamā šūna
Beigu apakš

Parasti varat izmantot paziņojumu On Error Resume Next, ja uzskatāt, ka kļūdas ir nekaitīgas vai nav saistītas ar jūsu uzdevumu.

Leave a Comment

Kā pārvietoties Word 2007 tabulā

Kā pārvietoties Word 2007 tabulā

Uzziniet, kā efektīvi pārvietoties Word 2007 tabulā, izmantojot īsinājumtaustiņus un peles darbības, lai optimizētu savu darba plūsmu.

10 Excel funkcijas, kas jums patiešām būtu jāzina

10 Excel funkcijas, kas jums patiešām būtu jāzina

Šajā sarakstā ir iekļautas desmit populārākās Excel funkcijas, kas attiecas uz plašu vajadzību klāstu. Uzziniet, kā izmantot <strong>Excel funkcijas</strong> efektīvāk!

Papildu analīzes slāņu pievienošana jūsu Excel diagrammām

Papildu analīzes slāņu pievienošana jūsu Excel diagrammām

Uzziniet, kā pievienot papildu analīzes slāņus jūsu Excel diagrammām, lai uzlabotu vizualizāciju un sniegtu precīzākus datus. Šis raksts apraksta visas nepieciešamās darbības.

Kā izveidot rindkopas atkāpi programmā Word 2013

Kā izveidot rindkopas atkāpi programmā Word 2013

Uzziniet, kā iestatīt <strong>rindkopas atkāpi</strong> programmā Word 2013, lai uzlabotu dokumenta noformējumu un lasāmību.

Kā ievietot slejas Word 2010 dokumentā

Kā ievietot slejas Word 2010 dokumentā

Uzziniet, kā pareizi ievietot slejas programmā Word 2010, lai uzlabotu jūsu dokumentu formātu un struktūru.

Šūnu datu aizsardzība programmā Excel 2007

Šūnu datu aizsardzība programmā Excel 2007

Apsveriet iespēju aizsargāt Excel 2007 darblapu, lai izvairītos no neplānotām izmaiņām. Uzziniet, kā aizsargāt un atbloķēt šūnas, lai nodrošinātu datu integritāti.

PMT funkcija programmā Excel 2013

PMT funkcija programmā Excel 2013

Programmas Excel 2013 PMT funkcija aprēķina periodisko mūža rentes maksājumu. Šī funkcija ir būtiska hipotekāro kredītu maksājumu plānošanai.

Kā lietot t-test datu analīzes rīku programmā Excel

Kā lietot t-test datu analīzes rīku programmā Excel

Mācieties, kā veikt t-testus Excel programmā, izmantojot datus un aprakstot trīs t-testu veidus, kas noderēs jūsu datu analīzes procesā.

Kā filtrēt datu sarakstu programmā Excel 2016

Kā filtrēt datu sarakstu programmā Excel 2016

Uzziniet, kā filtrēt datu sarakstu programmā Excel 2016, lai ērti paslēptu nevēlamus ierakstus un strādātu tikai ar nepieciešamajiem datiem.

Kā pievienot datu etiķetes diagrammai programmā Excel 2007

Kā pievienot datu etiķetes diagrammai programmā Excel 2007

Uzziniet, kā vienkārši pievienot datu etiķetes diagrammai programmā Excel 2007. Palīdziet noteikt vērtības, kas tiek rādītas katrā datu punktā, izmantojot dažādas izvietošanas un formatēšanas iespējas.