VBA IFERROR

Velikokrat napisana koda daje napako in možnosti, da pride do napake v kompleksni napaki, so precej visoke. Like excel ima funkcijo IFERROR, ki se uporablja tam, kjer obstaja možnost napake. IFERROR spremeni sporočilo o napaki v druge besedilne izjave, kot jih zahteva in definira uporabnik. Podobno deluje VBA IFERROR enako kot IFERROR funkcija Excela. Uporabnik spremeni sporočilo o napaki v definirano besedilo.

Ta napaka se večinoma pojavi, ko izvajamo katero koli matematično funkcijo ali če preslikavamo katere koli podatke v drugačni obliki. IFERROR obravnava veliko napak, nekatere od njih so:

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

Primer 1

Zdaj se lahko ta funkcija IFERROR izvaja tudi v VBA. Zdaj, če primerjamo rezultate Excela z VBA IFERROR, bomo vstavili stolpec, v katerem bomo uporabili stavek VBA IFERROR, kot je prikazano spodaj.

To predlogo VBA IFERROR Excel lahko prenesete tukaj - VBA predlogo IFERROR Excel

Za to upoštevamo iste podatke in vstavimo drug stolpec, kjer bomo izvedli VBA IFERROR. Pojdite v okno VBA in v meni Vstavi nov modul, kot je prikazano spodaj.

Zdaj v novo odprti modul napišite podkategorijo s katerim koli imenom. Tu smo dali ime operacijske funkcije, kot je prikazano spodaj.

Koda:

 Sub VBA_IfError () Konec Sub 

Zdaj bomo s pomočjo ActiveCell izbrali prvo referenčno celico in nato neposredno uporabili formulo IFERROR z referenčno celico (RC) -2, deljeno z -1 števili celic. Kar pomeni, da v prvem argumentu delimo celico A na celico B. V drugi argument pa napišite poljubno izjavo, ki jo želimo namesto napake. Tu bomo uporabili isto stanje, kot smo ga videli zgoraj, tj. „Ni razreda izdelkov“.

Koda:

 Pod VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ni razreda izdelkov" ")" End Sub 

Zdaj izberite celico obsega, ki bi bila naš imenovalec. Tu smo izbrali celico C2.

Koda:

 Pod VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " Ni razreda izdelkov "") "Obseg (" C2 "). Izberite End Sub 

Zdaj povlecimo formulo v spodnje celice, kjer moramo uporabiti IFERROR, dokler tabela ne bo imela vrednosti.

Koda:

 Pod VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " Ni razreda izdelka "") "Obseg (" C2 "). Izberite Selection.End (xlDown) .Izberite konec Pod 

Zdaj pa pridemo do zadnje celice stolpca s pomočjo ukaza Range, kamor moramo povleči formulo IFERROR. Tu se naša meja konča pri celici D6.

Koda:

 Pod VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " Ni razreda izdelka "") "Obseg (" C2 "). Izberite Selection.End (xlDown). Izberite obseg ("D6") Izberite End Sub 

Zdaj, da povlečete uporabljeni IFERROR navzdol do vseh ustreznih celic, izberite ukaz Območje od končne (ali zadnje) celice do gor do uporabljene celice formule s strani End (xlUp) pod Range .

Koda:

 Pod VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " Ni razreda izdelka "") "Obseg (" C2 "). Izberite Selection.End (xlDown). Izberite obseg ("D6"). Izberite obseg (izbira, izbira. Konča (xlUp)). 

Ko naredimo Ctrl + D, da povlečemo gornje vrednosti celic v vse izbrane celice v excelu, se tukaj v VBA, Selection.FillDown uporablja za polnjenje enakih vrednosti celic v vseh izbranih celicah.

Koda:

 Pod VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " Ni razreda izdelka "") "Obseg (" C2 "). Izberite Selection.End (xlDown). Izberite obseg ("D6"). Izberite območje (izbira, izbira. Konča (xlUp)). Izberite izbiro.polni konec konca pod 

S tem je zaključeno kodiranje VBA IFERROR. Zdaj zaženite celotno kodo s klikom na gumb za predvajanje, kot je prikazano na posnetku zaslona spodaj.

Kot lahko vidimo zgoraj, smo v stolpcu D, ki se začne od celice 2 do 6, dobili svoje rezultate.

Obstaja še ena oblika in način uporabe IFERROR-ja v VBA. Za to bomo upoštevali še en niz podatkov, kot je prikazano spodaj. Spodaj imamo podatke o prodaji nekaterih izdelkov v stolpcu A in kakovost, ki se prodajajo v stolpcu B. Te podatke moramo preslikati v celico F2 glede na vrsto izdelka Prenosni računalnik . Zdaj imajo podatki v prvi tabeli # N / A v celici B3 s količino za prenosni računalnik, ki je razprodana, kar pomeni, da imajo sami izvorni podatki napako. In če poiščemo podatke iz prve tabele v celici F2, bomo tukaj dobili isto številko N / A.

Za to odprite nov modul v VBA in napišite podkategorijo z imenom izvedene funkcije.

Koda:

 Sub VBA_IfError2 () Konec Sub 

Izberite obseg, kjer moramo videti izhod ali neposredno aktivirati to celico s strani ActiveCell, ki ji sledi ukazna vrstica pika (.), Kot je prikazano spodaj.

Koda:

Zdaj izberite FormulaR1C1 s seznama, ki se uporablja za vstavljanje katere koli funkcije excel.

Zdaj uporabite isto formulo kot v excel funkciji tudi v VBA.

Koda:

 Pod VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Napaka v Podatki "") "Končni pod 

Zdaj izberite celico, kjer moramo videti izhod v območju. Tu smo izbrali celico F3.

Koda:

 Pod VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Napaka v Podatki "") "Obseg (" B8 "). Izberite End Sub 

Zdaj sestavite in zaženite celotno kodo s tipko F5 ali ročno in si oglejte rezultat, kot je prikazano spodaj.

Kot lahko vidimo na zgornjem posnetku zaslona, ​​je izhod vrste izdelka Prenosni računalnik iz prve tabele # N / A z besedilom napake " Napaka v podatkih ", kot je opredeljeno v kodi VBA.

Prednosti funkcije VBA IFERROR

  • Za uporabo funkcije IFERROR prek VBA potrebuje malo časa.
  • Rezultat funkcije Excel vstaviti in kodirati VBA IFERROR, oba sta enaka.
  • Uporabljeno formulo lahko tudi formatiramo ali prilepimo, da se izognemo nadaljnjim težavam.

Slabosti funkcije VBA IFERROR

  • IFERROR s to metodo lahko sklicevanje na obseg izbrane celice moti, saj ima tabela omejene celice.

Stvari, ki jih je treba zapomniti

  • Makro lahko posnamemo in po potrebi prilagodimo posneto kodiranje.
  • Vedno ne pozabite, da datoteko shranite kot Macro-Enabled Excel, da bomo lahko uporabljeni ali ustvarjeni makro uporabljali večkrat brez kakršnih koli težav.
  • Preden končate ukazno funkcijo, ne pozabite sestaviti celotne kode. S tem se lahko izognemo ali popravimo vsako nastalo napako.
  • Ustvarjeno kodo lahko uporabite v gumbu ali zavihku in jo uporabite z enim klikom. To je najhitrejši način za zagon kode.
  • Najboljši način, da se izognete spremembam po zagonu kode, je, da posebne celice prilepite, tako da v celico ne bo nobene formule.

Priporočeni članki

To je vodnik za funkcijo IFERROR Excel VBA. Tu smo razpravljali o uporabi funkcije IFERROR v VBA skupaj z nekaj praktičnimi primeri in naloženo predlogo excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. VBA matrike v Excelu
  2. Vodnik po formatu številk VBA
  3. Vodnik po Poišči VBA
  4. Kako uporabljati VBA Do while Loop?

Kategorija: