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.


Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows Microsoft Word atver failus tikai lasīšanas režīmā, padarot tos neiespējamu rediģēt? Neuztraucieties, metodes ir norādītas zemāk

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā labot kļūdas, drukājot nepareizus Microsoft Word dokumentus.Kļūdas Word dokumentu drukāšanā ar mainītiem fontiem, nekārtīgām rindkopām, trūkstoša teksta vai pazaudētu saturu ir diezgan izplatītas. Tomēr nevajag

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Ja prezentācijas laikā esat izmantojis pildspalvu vai marķieri, lai zīmētu uz PowerPoint slaidiem, varat saglabāt zīmējumus nākamajai prezentācijai vai izdzēst tos, lai nākamajā reizē, kad to parādīsit, jūs sāktu ar tīriem PowerPoint slaidiem. Izpildiet šos norādījumus, lai dzēstu pildspalvas un marķiera zīmējumus: Līniju dzēšana pa vienai […]

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Stilu bibliotēkā ir CSS faili, paplašināmās stila lapu valodas (XSL) faili un attēli, ko izmanto iepriekš definētas šablona lapas, lapu izkārtojumi un vadīklas programmā SharePoint 2010. Lai atrastu CSS failus publicēšanas vietnes stilu bibliotēkā: izvēlieties Vietnes darbības → Skatīt Viss vietnes saturs. Tiek parādīts vietnes saturs. Stila bibliotēka atrodas […]

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Nepārsedziet savu auditoriju ar milzīgiem skaitļiem. Programmā Microsoft Excel varat uzlabot informācijas paneļu un pārskatu lasāmību, formatējot skaitļus tā, lai tie tiktu rādīti tūkstošos vai miljonos.

Kā koplietot un sekot līdzi SharePoint vietnēm

Kā koplietot un sekot līdzi SharePoint vietnēm

Uzziniet, kā izmantot SharePoints sociālo tīklu rīkus, kas ļauj indivīdiem un grupām sazināties, sadarboties, koplietot un sazināties.

Kā programmā Excel konvertēt datumus Juliana formātos

Kā programmā Excel konvertēt datumus Juliana formātos

Jūlija datumi ražošanas vidēs bieži tiek izmantoti kā laikspiedols un ātra atsauce partijas numuram. Šāda veida datuma kodēšana ļauj mazumtirgotājiem, patērētājiem un pakalpojumu aģentiem noteikt produkta izgatavošanas laiku un līdz ar to arī produkta vecumu. Jūlija datumi tiek izmantoti arī programmēšanā, militārajā jomā un astronomijā. Savādāk […]

Kā izveidot Access Web App

Kā izveidot Access Web App

Programmā Access 2016 varat izveidot tīmekļa lietotni. Kas tad vispār ir tīmekļa lietotne? Tīmeklis nozīmē, ka tas ir tiešsaistē, un lietotne ir tikai “lietojumprogrammas” saīsinājums. Pielāgota tīmekļa lietotne ir tiešsaistes datu bāzes lietojumprogramma, kurai var piekļūt no mākoņa, izmantojot pārlūkprogrammu. Jūs veidojat un uzturat tīmekļa lietotni darbvirsmas versijā […]

Ātrās palaišanas josla programmā SharePoint 2010

Ātrās palaišanas josla programmā SharePoint 2010

Lielākā daļa SharePoint 2010 lapu ātrās palaišanas joslā lapas kreisajā pusē parāda navigācijas saišu sarakstu. Ātrās palaišanas joslā tiek rādītas saites uz piedāvāto vietņu saturu, piemēram, sarakstiem, bibliotēkām, vietnēm un publicēšanas lapām. Ātrās palaišanas joslā ir divas ļoti svarīgas saites: Visa vietnes satura saite: […]

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Vienkāršām problēmām risinātājs programmā Excel parasti ātri atrod optimālās Risinātāja mainīgā vērtības mērķa funkcijai. Taču dažos gadījumos Solver ir grūti atrast Solver mainīgā vērtības, kas optimizē mērķa funkciju. Šādos gadījumos Solver parasti parāda ziņojumu vai kļūdas ziņojumu, kurā aprakstīta vai apspriesta problēma, ko […]