VBA IFERROR

Napísaný kód mnohokrát dáva chybu a šance na získanie chyby pri komplexnej chybe sú dosť vysoké. Rovnako ako Excel má funkciu IFERROR, ktorá sa používa tam, kde existuje pravdepodobnosť vzniku chyby. IFERROR zmení chybové hlásenie na iné textové príkazy, ako to vyžaduje a definuje užívateľ. Podobne VBA IFERROR funguje rovnako ako funkcia IFERROR v Exceli. Užívateľ zmení chybovú správu na definovaný text.

Táto chyba sa väčšinou vyskytuje, keď vykonávame akúkoľvek matematickú funkciu alebo ak mapujeme akékoľvek údaje, ktoré sú v inom formáte. IFERROR rieši mnoho chýb, niektoré z nich sú:

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

Príklad č. 1

Túto funkciu IFERROR je teraz možné implementovať aj vo VBA. Teraz, aby sme porovnali výsledky z Excelu s VBA IFERROR, vložíme stĺpec, do ktorého použijeme príkaz VBA IFERROR, ako je uvedené nižšie.

Túto šablónu aplikácie VBA IFERROR si môžete stiahnuť tu - šablónu VBA IFERROR Excel

Z tohto dôvodu zvážime rovnaké údaje a vložíme ďalší stĺpec, kde budeme vykonávať VBA IFERROR. Prejdite do okna VBA a vložte nový modul z ponuky Vložiť, ako je to znázornené nižšie.

Teraz v novo otvorenom module napíšte podkategóriu s ľubovoľným menom. Tu je uvedený názov ovládacej funkcie, ako je znázornené nižšie.

kód:

 Sub VBA_IfError () End Sub 

Teraz pomocou ActiveCell vyberieme prvú referenčnú bunku a potom priamo použijeme vzorec IFERROR s referenčnou bunkou (RC) -2 vydelený -1 číslami buniek. Čo znamená, že v prvom argumente delíme bunku A bunkou B. A do druhého argumentu napíšte každé vyhlásenie, ktoré chceme namiesto chyby. Tu použijeme rovnaký stav, aký sme videli vyššie, tj „žiadna produktová trieda“.

kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žiadna trieda produktu" ")" End Sub 

Teraz vyberte bunku rozsahu, ktorá by bola naším menovateľom. Tu sme vybrali bunku C2.

kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žiadna trieda produktu" ")" Rozsah ("C2"). Vyberte End Sub 

Teraz pretiahnite vzorec pod bunky, kde musíme použiť IFERROR, kým tabuľka nebude mať hodnoty.

kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žiadna trieda produktu" ")" Rozsah ("C2"). Vyberte výber.End (xlDown) .Vyberte koniec náhradník 

Teraz prejdeme na poslednú bunku stĺpca pomocou príkazu Range, kde musíme pretiahnuť vzorec IFERROR. Tu náš limit končí v bunke D6.

kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žiadna trieda produktu" ")" Rozsah ("C2"). Vyberte výber.End (xlDown) .Vyberte rozsah („D6“). Vyberte možnosť End Sub 

Teraz, aby ste presunuli aplikovaný IFERROR nadol do všetkých použiteľných buniek, vyberte príkaz Range od End (alebo Last) cell to Up až po aplikovanú bunku Formula by End (xlUp) pod Range .

kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žiadna trieda produktu" ")" Rozsah ("C2"). Vyberte výber.End (xlDown) .Vyberte rozsah ("D6"). Vyberte rozsah (výber, výber.End (xlUp)). Vyberte End Sub 

Pretože robíme Ctrl + D, aby sme pretiahli hodnoty buniek nahor do všetkých vybratých buniek v Exceli, tu vo VBA sa Selection.FillDown používa na vyplnenie rovnakých hodnôt buniek do všetkých vybratých buniek.

kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žiadna trieda produktu" ")" Rozsah ("C2"). Vyberte výber.End (xlDown) .Vyberte rozsah ("D6"). Vyberte rozsah (výber, výber. A (xlUp)). Vyberte výber. 

Týmto sa dokončí kódovanie VBA IFERROR. Teraz spustite celý kód kliknutím na tlačidlo prehrávania, ako je to znázornené na obrázku nižšie.

Ako vidíme vyššie, v stĺpci D začínajúcom od bunky 2 až 6 sme dosiahli naše výsledky.

Existuje ďalší formát a spôsob, ako použiť IFERROR vo VBA. Z tohto dôvodu zvážime ďalšiu skupinu údajov, ako je uvedené nižšie. Nižšie máme údaje o predaji niektorých výrobkov v stĺpci A a kvalite predávanej v stĺpci B. A tieto dáta musíme mapovať v bunke F2 s odkazom na typ produktu Laptop . Teraz sú údaje v prvej tabuľke # N / A v bunke B3 s pre množstvo vypredaného laptopu, čo znamená, že samotné zdrojové údaje majú chybu. A ak vyhľadáme údaje z prvej tabuľky do bunky F2, dostaneme rovnaké # N / A tu.

Na tento účel otvorte nový modul vo VBA a napíšte podkategóriu s názvom vykonanej funkcie.

kód:

 Sub VBA_IfError2 () End Sub 

Vyberte rozsah, v ktorom potrebujeme vidieť výstup, alebo priamo aktivovať túto bunku pomocou ActiveCell nasledovanou bodkou (.) Príkazového riadku, ako je to znázornené nižšie.

kód:

Teraz vyberte FormulaR1C1 zo zoznamu, ktorý sa používa na vloženie akejkoľvek vynikajúcej funkcie.

Teraz použite rovnaký vzorec, aký sa používa vo funkcii Excel vo VBA.

kód:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Chyba v Údaje „“) „Koniec sub 

Teraz vyberte bunku, kde musíme vidieť výstup v rozsahu. Tu sme vybrali bunku F3.

kód:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Chyba v Rozsah údajov („B8“). Vyberte End Sub 

Teraz skompilujte a spustite kompletný kód pomocou klávesu F5 alebo ručne a pozrite si výsledok, ako je uvedené nižšie.

Ako vidno na obrázku vyššie, výstup typu laptop, z prvej tabuľky č. N / A je s textom chyby „ Chyba v údajoch “, ako je definované v kóde VBA.

Výhody funkcie VBA IFERROR

  • Aplikovanie funkcie IFERROR prostredníctvom VBA trvá trochu času.
  • Výsledok funkcie vloženia programu Excel a kódovania VBA IFERROR sú rovnaké.
  • Použitý vzorec môžeme tiež naformátovať alebo prilepiť, aby sme predišli ďalším problémom.

Nevýhody funkcie VBA IFERROR

  • IFERROR pri tejto metóde môže byť odkazovanie na rozsah vybratej bunky narušené, pretože tabuľka obsahuje obmedzené bunky.

Čo je potrebné pamätať

  • Môžeme zaznamenať makro a zmeniť zaznamenané kódovanie podľa našich potrieb.
  • Vždy pamätajte na uloženie súboru vo formáte Excel s povoleným makrom, aby sme mohli použiť použité alebo vytvorené makro niekoľkokrát bez problémov.
  • Pred ukončením príkazovej funkcie nezabudnite zostaviť celý kód. Týmto sa môžeme vyhnúť alebo napraviť akékoľvek vzniknuté chyby.
  • Vytvorený kód môžete použiť na tlačidlo alebo kartu a použiť ho jediným kliknutím. Toto je najrýchlejší spôsob spustenia kódu.
  • Najlepším spôsobom, ako sa vyhnúť akýmkoľvek zmenám po spustení kódu, je vloženie špeciálnych celých buniek tak, aby do bunky neexistoval žiadny vzorec.

Odporúčané články

Toto bol sprievodca funkciou Excel VBA IFERROR. Tu sme diskutovali o tom, ako používať funkciu IFERROR vo VBA, spolu s niekoľkými praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Polia VBA v Exceli
  2. Sprievodca formátom čísla VBA
  3. Sprievodca vyhľadaním VBA
  4. Ako používať VBA Do while Loop?

Kategórie: