VBA IFERROR

Mitu korda kirjutatud kood annab vea ja keeruka vea korral tõrke saamise võimalused on üsna suured. Nagu excelil, on ka funktsioon IFERROR, mida kasutatakse vea saamise tõenäosuse korral. IFERROR muudab veateate vastavalt kasutaja nõudmistele ja määratlusele muudeks tekstisõnumiteks. Samamoodi töötab VBA IFERROR samamoodi nagu Exceli IFERROR. See muudab veateate kasutaja määratletud tekstiks.

See tõrge ilmneb enamasti siis, kui täidame mis tahes matemaatilist funktsiooni või kui kaardistame mis tahes muus vormingus andmeid. IFERROR tegeleb paljude vigadega, mõned neist on:

#VALUE !, # N / A, # DIV / 0 !, #REF !, #NUM !, #NULL! Ja #NAME?

Näide nr 1

Nüüd saab seda IFERROR-i funktsiooni rakendada ka VBA-s. Nüüd, et võrrelda Exceli tulemusi VBA IFERRORiga, lisame veeru, kus rakendame VBA IFERRORi avalduse, nagu allpool näidatud.

Selle VBA IFERROR Exceli malli saate alla laadida siit - VBA IFERROR Exceli mall

Selleks kaalume samu andmeid ja sisestame teise veeru, kus teostame VBA IFERRORi. Minge VBA aknasse ja sisestage menüüst Insert uus moodul, nagu allpool näidatud.

Kirjutage äsja avatud moodulis suvalise nimega alamkategooria. Siin on antud tööfunktsiooni nimi, nagu allpool näidatud.

Kood:

 Alam VBA_IfError () lõpp alam 

Nüüd valime ActiveCelli abiga esimese võrdlusraku ja kasutame siis otse IFERRORi valemit referentsrakuga (RC) -2 jagatuna -1 lahtrite arvuga. Mis tähendab, et jagame lahtri A esimeses argumendis lahtriga B. Ja teises argumendis kirjutage kõik väited, mida me eksimuse asemel soovime. Kasutame siin sama olekut, mida oleme ülalt näinud, st “No Product Class”.

Kood:

 Alam VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No tooteklass" ")" End Sub 

Valige nüüd vahemiku lahter, mis oleks meie nimetaja. Siin valisime lahtri C2.

Kood:

 Alam VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Tooteklass puudub") "Vahemik (" C2 "). Valige Lõp. Alam 

Nüüd lohistage valem lahtrite alla, kus peame rakendama IFERRORi, kuni tabelis on väärtused.

Kood:

 Alam VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Tooteklass puudub") "Vahemik (" C2 "). Valige Valik.End (xlDown) .Vali lõpp Alam 

Tulles veeru viimase lahtri juurde käsu Range abil, kuhu peame lohistama IFERRORi valemi. Siin lõpeb meie piir lahtris D6.

Kood:

 Alam VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Tooteklass puudub") "Vahemik (" C2 "). Valige Selection.End (xlDown) .Vali vahemik ("D6") Valige End Sub 

Nüüd, lohistades rakendatud IFERRORi kõigi sobivate lahtrite alla, valige vahemiku alt käsk vahemik lahtrist Lõpp (või Viimane) kuni Rakendatav valemi lahter lõpuni (xlUp) .

Kood:

 Alam VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Tooteklass puudub") "Vahemik (" C2 "). Valige Selection.End (xlDown) .Vali vahemik ("D6"). Valige vahemik (Selection, Selection.End (xlUp)). Valige End Sub 

Kui teeme Ctrl + D, et lohistada lahtri väärtused kõigisse valitud lahtritesse excelis, kasutatakse siin VBA-s valikut Selection.FillDown, et täita samad lahtrite väärtused kõigis valitud lahtrites.

Kood:

 Alam VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Tooteklass puudub") "Vahemik (" C2 "). Valige Selection.End (xlDown) .Vali vahemik ("D6"). Valige vahemik (Selection, Selection.End (xlUp)). Valige Selection.FillDown End Sub 

See lõpetab VBA IFERRORi kodeerimise. Nüüd käivitage täielik kood, klõpsates esitusnupul, nagu on näidatud allpool ekraanipildil.

Nagu ülal näeme, saime veerus D alates lahtrist 2 kuni 6 oma tulemused.

IFERRORi rakendamiseks VBA-s on veel üks vorming ja viis. Selleks kaalume veel ühte andmekogumit, nagu allpool näidatud. Allpool on veerus A esitatud mõne toote müügiandmed ja veerus B müüdud kvaliteet. Ja me peame need andmed lahtris F2 kaardistama tootetüübiga Sülearvuti . Nüüd on esimese tabeli andmetes lahtris B3 nr N / A, sülearvuti koguse jaoks on see välja müüdud, mis tähendab, et lähteandmetel on viga. Ja kui otsime esimesest tabelist andmeid lahtrisse F2, saame siin sama nr.

Selleks avage uus moodul VBA-s ja kirjutage alamkategooria koos teostatud funktsiooni nimega.

Kood:

 Alam VBA_IfError2 () lõpp alam 

Valige vahemik, kus peame väljundit nägema, või aktiveerige see lahter otse ActiveCellil, millele järgneb punkti (.) Käsurida, nagu allpool näidatud.

Kood:

Nüüd valige loendist FormulaR1C1, mida kasutatakse mis tahes exceli funktsiooni sisestamiseks.

Nüüd kasutage sama valemit, mida kasutatakse ka VBA exceli funktsioonis.

Kood:

 Alam VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0)" "Viga Andmed "") "Lõpu alam 

Valige nüüd lahter, kus peame väljundit vahemikus nägema. Siin valisime lahtri F3.

Kood:

 Alam VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0)" "Viga Data "") "Range (" B8 "). Valige End Sub 

Nüüd kompileerige ja käivitage täielik kood F5-klahvi abil või käsitsi ja vaadake tulemust, nagu allpool näidatud.

Nagu näeme ülaltoodud ekraanipildil, on tootetüübi Sülearvuti väljund esimesest tabelist nr N / A koos VBA-koodis määratletud veatekstiga “ Error In Data ”.

Funktsiooni VBA IFERROR plussid

  • Funktsiooni IFERROR rakendamine VBA kaudu võtab vähe aega.
  • Exceli lisamisfunktsiooni ja VBA IFERRORi kodeerimise tulemus on sama.
  • Edasiste probleemide vältimiseks saame vormindada või kleepida ka spetsiaalse rakendatud valemi.

VBA IFERROR funktsiooni miinused

  • IFERROR selle meetodiga võib valitud lahtri vahemikule viitamine häirida, kuna tabelis on piiratud lahtrid.

Asjad, mida meeles pidada

  • Saame makro salvestada ja kodeerimist vastavalt vajadusele muuta.
  • Ärge unustage salvestada faili makrofunktsioonidega Excelis, nii et saaksime rakendatud või loodud makro mitu korda ilma probleemideta kasutada.
  • Enne käsufunktsiooni lõpetamist ärge unustage kogu koodi kompileerida. Selle abil saame tekkinud vigu vältida või parandada.
  • Saate loodud koodi rakendada nupule või vahekaardile ja kasutada seda ühe klõpsuga. See on kiireim viis koodi käivitamiseks.
  • Parim viis muudatuste vältimiseks pärast koodi käivitamist on spetsiaalsete lahtrite kleepimine, nii et lahtrisse ei kuvataks ühtegi valemit.

Soovitatavad artiklid

See on olnud Excel VBA IFERROR Functioni juhend. Siin arutati, kuidas kasutada funktsiooni IFERROR VBA-s koos mõnede praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. VBA massiivid Excelis
  2. VBA numbrivormingu juhend
  3. VBA leidmise juhend
  4. Kuidas kasutada VBA funktsiooni Do While Loop?

Kategooria: