VBA o napaki

VBA On Error je enostaven način za obravnavanje nepričakovanih izjem v Excelu Macros. Znano je, da kode ne moremo napisati brez napake. Včasih lahko pisanje velike kode povzroči napako tudi v času sestavljanja. Da se izognemo takšnim situacijam, dodamo sporočilo o napaki, ki nam namesto da nam pravi odgovor ali kodo napake, nam prikaže sporočilo s kodo napake. To bi bilo videti, kot da smo dobili rezultat našega izračuna, vendar se bo vtisnila koda napake.

Kako uporabljati Excel VBA pri izjavi o napaki v Excelu?

V VBA obstajajo 3 napake. Razložimo različne načine z nekaj primeri.

Primer # 1

Prva vrsta napake je napaka pri sestavljanju kode, ki nastane, če koda ni označena ali je nemogoče spremenljivk. Za boljše razumevanje bomo uporabili preprost matematični izraz ločitve. Za to pojdite v Vstavi meni VBA in izberite Modul, kot je prikazano spodaj.

Zdaj odprite podkategorijo in dodajte poljubno ime. Ko uporabljamo On Error, smo tako poimenovali isto.

 Sub OnError () Konec Sub 

Zdaj določite 2 ali 3 celote. Tu imamo X in Y kot cela števila.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten konec Pod 

Kot smo razpravljali zgoraj, bomo izračunali delitveni matematični izraz. Za X bomo v Numerator vstavili znak in ga delili 0. In Y bo 20/2, kar je popolna številka.

 Sub OnError () Dim X kot celo število, Y kot celoten X = test / 0 Y = 20/2 konec pod 

Zdaj zaženite kodo s tipko F5 ali s klikom na gumb za predvajanje, kot je prikazano spodaj. Dobili bomo napako med izvajanjem 6, ki prikazuje napako Text over number.

Zdaj, da odpravimo to napako, bomo dodali eno vrstico On Error Resume Next, preden napišemo matematično kodo. Skočila bo koda napake, vendar ne bomo videli rezultata druge matematične kode. To sporočilo o napaki skriva le, če različne vrstice kod, kot je prikazano spodaj. Zdaj poskusite zagnati tudi kodo.

 Sub OnError () Dim X kot celo število, Y kot celoten del napak Nadaljujte Naprej X = Test / 0 Y = 20/2 MsgBox X MsgBox Y End Sub 

Zdaj, da odpravimo to napako, bomo dodali eno vrstico On Error Resume Next, preden napišemo matematično kodo. Skočila bo koda napake, vendar ne bomo videli rezultata druge matematične kode. To sporočilo o napaki skriva le, če različne vrstice kod, kot je prikazano spodaj. Zdaj poskusite zagnati tudi kodo.

Primer # 2

V tem primeru bomo upoštevali matematično delitev, ki daje neskončen rezultat, pri kodiranju pa bo rezultat # DIV / 0. Za prikaz tega bomo upoštevali še eno celo število Z skupaj z X in Y v podkategoriji, kot je prikazano spodaj.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten konec Pod 

Zdaj uokvirite vsa cela števila X, Y in Z z matematičnim izrazom ločitve in ga natisnite z uporabo funkcije MsgBox v VBA vsakega celotnega rezultata.

Spodaj za Integer X smo razdelili 10 na 0, 20 na 2 in 30 na 4.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Zdaj zaženite kodo s tipko F5 ali ročno, kot je prikazano spodaj.

Kot lahko vidimo na zgornjem posnetku zaslona Napaka 11 med izvajanjem, kar pomeni, da je napaka povezana s številko. Zdaj, da premagate to, dodajte eno vrstico Napaka Nadaljujte naprej pred matematičnim izražanjem, kot je prikazano spodaj.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten ob napaki Nadaljuj Naprej X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Če zaženemo kodo, dobimo nič za prvo celo število X, za Y in Z pa dobimo ustrezne odgovore delitve, kot je prikazano spodaj.

Primer # 3

Druga vrsta napake se pojavi, ko v kodo vnesemo napačen vnos podatkov. Za to bomo upoštevali 3 cela števila X, Y in Z, tako da odpremo podkategorijo v VBA, kot je prikazano spodaj.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten konec Pod 

Zdaj razmislite tudi o isti matematični razdelitvi, kot smo jo videli v zgornjem primeru.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Če zaženemo kodo, bomo dobili isto sporočilo o napaki 11-te napake.

Zdaj razveljavite to napako, uporabite besedilo Napaka GoTo z besedo "" Rezultat za preskok sporočila o napaki in pridobite izhod, ki deluje v redu, kot je prikazano spodaj.

 Pod OnError () Dim X kot celoten, Y kot celoten, Z kot celoten ob napaki GoTo ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Zdaj zaženite kodo še enkrat. Dobili bomo enak rezultat kot prejšnji primer.

Napaka GoTo ZResult nam pomaga, da neposredno skočimo omenjeno celotno točko kot celo za Z.

Primer št. 4

Pri tretji vrsti napake, ko zaženemo kodo in VBA ne more razumeti vrstice kode. To lahko storite s pomočjo kode On Error Resume Next skupaj z MsgBox Err.Number . Upoštevajte iste podatke kot v zgornjih primerih. Ponovno bomo videli enaka 3 cela števila X, Y in Z, kot je prikazano spodaj.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten konec Pod 

In za tiskanje izhodnega rezultata pustite polja za sporočila za vse Integerje kot izhod.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Če zaženemo celotno kodo, bomo dobili sporočilo o napaki matematične napake 11.

Zdaj bomo za odpravo te napake uporabili On Error Resume Next.

 Sub OnError () Dim X kot celoten, Y kot celoten, Z kot celoten ob napaki Nadaljuj Naprej X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

In zaženite kodo. To bo uporabilo rezultat na veljavni matematični vrstici, kot je prikazano spodaj.

Zdaj nadalje dodajte kodno vrstico ZResult pred matematični izraz Z celoštevilčno delitev in dodajte kodno vrstico MsgBox Err.Number na koncu kode, kot je prikazano spodaj.

 Pod OnError () Dim X kot celoten, Y kot celoten, Z kot celoten ob napaki Nadaljuj Naprej X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Number End Sub 

Zdaj zaženite kodo s tipko F5 ali s pritiskom na gumb za predvajanje, kot je prikazano spodaj.

Kot lahko vidimo na zgornjih posnetkih zaslona. Prvo sporočilo ima 0, kar je preglasovanje napačnega matematičnega izraza. Drugi in tretji del imata rezultat delitve Y in Z celih števil. In zadnje sporočilo ima kodo napake 11 časa, ki je verjetno koda napake v delih X celoštevilčnih izrazov.

Prednosti VBA o napaki

  • Izračunamo lahko katero koli matematično formulo, tudi če je napačna.
  • Pri večjih strukturah kodiranja, pri katerih obstaja verjetnost ali napaka, lahko uporaba teh metod povzroči pravilen rezultat tudi med vrsticami kod.
  • To daje boljši rezultat v primerjavi z rezultatom, pridobljenim z običajnimi izračuni excela.

Stvari, ki jih je treba zapomniti

  • Vedno shranite datoteko v datoteko Excel z makro omogočenim, da bomo lahko večkrat in večkrat uporabili ustvarjeno kodo VBA.
  • Vedno sestavite pisno kodo, preden začnete izvajati kakršne koli zahteve za excel.
  • Po potrebi dodelite pisno kodo poljubnemu gumbu, tako da lahko hitro kliknemo na gumb in zaženemo kodo.

Predlogo VBA On Error Excel lahko prenesete tukaj - VBA On Error Excel Template

Priporočeni članki

To je vodnik za Excel VBA On Error. Tu smo razpravljali o tem, kako uporabiti izjavo o napaki VBA skupaj z nekaj praktičnimi primeri in naloženo predlogo excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. Kako uporabljati funkcijo VBA TRIM?
  2. Format številke v VBA
  3. Vodnik po Excelu VBA Ali medtem zanke
  4. Kako uporabljati funkcijo VBA Find?

Kategorija: