Kļūdu apstrādātāji Excel makro

Kļūdu apstrādātāji ļauj norādīt, kas notiek, ja Excel makro koda darbības laikā tiek konstatēta kļūda. Kļūdu apstrādātāji ir rindas, kas līdzīgas tālāk norādītajām.

Par kļūdu GoTo MyError

Bez kļūdu apstrādātājiem jebkura kļūda, kas rodas jūsu kodā, liks programmai Excel aktivizēt mazāk noderīgu kļūdas ziņojumu, kas parasti skaidri nenorāda notikušo. Tomēr, izmantojot kļūdu apstrādātājus, varat izvēlēties ignorēt kļūdu vai graciozi iziet no koda, nosūtot savu ziņojumu lietotājam.

Ir trīs veidu paziņojumi par kļūdu:

  • Kļūdas gadījumā GoTo SomeLabel: kods pāriet uz norādīto etiķeti.

  • Kļūdas gadījumā atsākt nākamo: kļūda tiek ignorēta, un kods tiek atsākts.

  • Par kļūdu GoTo 0: VBA atiestata normālu kļūdu pārbaudes darbību.

Par kļūdu GoTo SomeLabel

Dažreiz kļūda jūsu kodā nozīmē, ka jums ir rūpīgi jāiziet no procedūras un jāsniedz lietotājiem skaidrs ziņojums. Šādās situācijās varat izmantot paziņojumu On Error GoTo, lai norādītu programmai Excel pāriet uz noteiktu koda rindiņu.

Piemēram, nākamajā nelielajā koda daļā jūs sakāt programmai Excel dalīt vērtību šūnā A1 ar vērtību šūnā A2 un pēc tam ievietot atbildi šūnā A3. Viegli. Kas varētu noiet greizi?

Apakšmakro1()
Diapazons("A3").Vērtība = diapazons("A1").Vērtība/diapazons("A2").Vērtība
Beigt apakš

Kā izrādās, divas galvenās lietas var noiet greizi. Ja šūnā A2 ir 0, tiek parādīta kļūda dalīt ar 0. Ja šūnā A2 ir vērtība, kas nav skaitliska, tiek parādīta tipa neatbilstības kļūda.

Lai izvairītos no nepatīkama kļūdas ziņojuma, varat norādīt programmai Excel, ka kļūdas gadījumā vēlaties, lai koda izpilde pārietu uz etiķeti ar nosaukumu MyExit.

Nākamajā kodā MyExit etiķetei seko ziņojums lietotājam, kas sniedz draudzīgu padomu, nevis nepatīkamu kļūdas ziņojumu. Ņemiet vērā arī Exit Sub rindiņu pirms MyExit etiķetes, kas nodrošina, ka kods vienkārši iziet, ja netiks konstatēta kļūda:

Apakšmakro1()
Kļūdas gadījumā GoTo MyExit
Diapazons("A3").Vērtība = diapazons("A1").Vērtība/diapazons("A2").Vērtība
Iziet Sub
MyExit:
MsgBox "Lūdzu, izmantojiet derīgus skaitļus, kas nav nulles"
Beigt apakš

Kļūdas gadījumā atsākt nākamo

Dažreiz jūs vēlaties, lai programma Excel ignorētu kļūdu un vienkārši atsāktu koda izpildi. Šādās situācijās varat izmantot paziņojumu par kļūdu, atsākt nākamo.

Piemēram, šī koda daļa ir paredzēta, lai izdzēstu failu ar nosaukumu GhostFile.exe no direktorijas C: Temp. Kad fails ir izdzēsts, jauks ziņojuma lodziņš informē lietotāju, ka fails ir pazudis:

Apakšmakro1()
Nogalināt "C: TempGhostFile.exe"
MsgBox "Fails ir izdzēsts."
Beigt apakš

Kods darbojas lieliski, ja patiešām ir fails, kas jādzēš. Bet, ja kāda iemesla dēļ fails ar nosaukumu GhostFile.exe neeksistē C:Temp diskdzinī, tiek parādīta kļūda.

Šajā gadījumā jums ir vienalga, vai fails tur nav, jo jūs tik un tā grasāties to dzēst. Tātad jūs varat vienkārši ignorēt kļūdu un turpināt izmantot kodu.

Izmantojot paziņojumu On Error Resume Next, kods tiek izpildīts neatkarīgi no tā, vai mērķa fails pastāv vai ne:

Apakšmakro1()
Kļūdas gadījumā atsākt nākamo
Nogalināt "C: TempGhostFile.exe"
MsgBox "Fails ir izdzēsts."
Beigt apakš

Par kļūdu GoTo 0

Izmantojot noteiktus kļūdu paziņojumus, var būt nepieciešams atiestatīt VBA kļūdu pārbaudes darbību. Lai saprastu, ko tas nozīmē, apskatiet nākamo piemēru.

Šeit vispirms vēlaties izdzēst failu ar nosaukumu GhostFile.exe no C: Temp direktorijas. Lai izvairītos no kļūdām, kas var rasties tādēļ, ka mērķa fails neeksistē, izmantojiet priekšrakstu On Error Resume Next. Pēc tam jūs mēģināt veikt kādu aizdomīgu matemātiku, dalot 100/Maiku:

Apakšmakro1()
Kļūdas gadījumā atsākt nākamo
Nogalināt "C: TempGhostFile.exe"
Diapazons ("A3"). Vērtība = 100 / "Mike"
Beigt apakš

Palaižot šo koda daļu, vajadzētu radīt kļūdu neskaidras matemātikas dēļ, taču tā nenotiek. Kāpēc? Tā kā pēdējā instrukcija, ko sniedzāt kodam, bija On Error Resume Next. Visas kļūdas, kas radušās pēc šīs rindas, faktiski tiek ignorētas.

Lai novērstu šo problēmu, varat izmantot paziņojumu On Error GoTo 0, lai atsāktu normālu kļūdu pārbaudes darbību:

Apakšmakro1()
Kļūdas gadījumā atsākt nākamo
Nogalināt "C: TempGhostFile.exe"
Par kļūdu GoTo 0
Diapazons ("A3"). Vērtība = 100 / "Mike"
Beigt apakš

Šis kods ignorēs kļūdas līdz paziņojumam On Error GoTo 0. Pēc šī paziņojuma kods atgriežas pie parastās kļūdu pārbaudes un aktivizē paredzamo kļūdu, kas izriet no neskaidras matemātikas.


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 […]