VBA IFERROR

Psaný kód mnohokrát dává chybu a šance na získání chyby v komplexní chybě jsou poměrně vysoké. Stejně jako Excel má funkci IFERROR, která se používá tam, kde existuje šance na získání chyby. IFERROR změní chybovou zprávu na jiné textové příkazy podle požadavků a definovaných uživatelem. Podobně VBA IFERROR funguje stejně jako funkce IFERROR Excelu. Uživatel změní chybovou zprávu na definovaný text.

K této chybě většinou dochází, když provádíme jakoukoli matematickou funkci nebo pokud mapujeme data, která jsou v jiném formátu. IFERROR zpracovává mnoho chyb, některé z nich jsou:

#VALUE !, # N / A, # DIV / 0 !, #REF !, #NUM !, #NULL! A # JMÉNO?

Příklad č. 1

Nyní lze tuto funkci IFERROR implementovat také ve VBA. Nyní pro porovnání výsledků z Excelu s VBA IFERROR vložíme sloupec, do kterého použijeme příkaz VBA IFERROR, jak je ukázáno níže.

Tuto šablonu aplikace VBA IFERROR si můžete stáhnout zde - šablonu aplikace VBA IFERROR Excel

Z tohoto důvodu zvažujeme stejná data a vložíme další sloupec, kde provedeme VBA IFERROR. Přejděte do okna VBA a vložte nový modul z nabídky Vložit, jak je ukázáno níže.

Nyní v nově otevřeném modulu napište Sub-category s libovolným názvem. Zde je uveden název ovládací funkce, jak je znázorněno níže.

Kód:

 Sub VBA_IfError () End Sub 

Nyní pomocí ActiveCell vybereme první referenční buňku a pak přímo použijeme IFERROR vzorec s referenční buňkou (RC) -2 děleno -1 buňkami. Což znamená, že v prvním argumentu dělíme buňku A buňkou B. A do druhého argumentu napište jakýkoli výrok, který chceme místo chyby. Zde použijeme stejný stav, jaký jsme viděli výše, tj. „Žádná třída produktu“.

Kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žádná třída produktu" ")" End Sub 

Nyní vyberte oblast dosahu, která by byla naším jmenovatelem. Zde jsme vybrali buňku C2.

Kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žádná třída produktu" ")" Rozsah ("C2"). Vyberte End Sub 

Nyní přetáhněte vzorec pod buňky, kde musíme použít IFERROR, dokud tabulka nemá hodnoty.

Kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žádná třída produktu" ")" Rozsah ("C2"). Vyberte výběr.End (xlDown) .Vyberte konec Sub 

Nyní se dostaneme do poslední buňky sloupce pomocí příkazu Range, kde musíme přetáhnout vzorec IFERROR. Zde náš limit končí v buňce D6.

Kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žádná třída produktu" ")" Rozsah ("C2"). Vyberte výběr.End (xlDown) .Vyberte rozsah ("D6"). Vyberte End Sub 

Nyní, chcete-li přetáhnout použitý IFERROR dolů do všech použitelných buněk, vyberte v rozsahu Rozsah od End (nebo Last) cell to Up až po aplikovanou buňku vzorce by End (xlUp) .

Kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žádná třída produktu" ")" Rozsah ("C2"). Vyberte výběr.End (xlDown) .Vyberte rozsah ("D6"). Vyberte Range (Selection, Selection.End (xlUp)). Vyberte End Sub 

Když děláme Ctrl + D, přetahujeme hodnoty buněk nahoru do všech vybraných buněk v Excelu, zde ve VBA, Selection.FillDown se používá k vyplnění stejných hodnot buněk do všech vybraných buněk.

Kód:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Žádná třída produktu" ")" Rozsah ("C2"). Vyberte výběr.End (xlDown) .Vyberte rozsah ("D6"). Vyberte Range (Selection, Selection.End (xlUp)). Select Selection.FillDown End Sub Sub 

Tím je dokončeno kódování VBA IFERROR. Nyní spusťte celý kód kliknutím na tlačítko Přehrát, jak je ukázáno na obrázku níže.

Jak vidíme výše, ve sloupci D počínaje buňkou 2 až 6 jsme dosáhli našich výsledků.

Existuje jiný formát a způsob, jak aplikovat IFERROR ve VBA. Z tohoto důvodu vezmeme v úvahu další sadu údajů, jak je uvedeno níže. Níže máme údaje o prodeji některých produktů ve sloupci A a kvalitě prodávané ve sloupci B. A tato data musíme mapovat v buňce F2 s odkazem na typ produktu Laptop . Nyní jsou data v první tabulce # N / A v buňce B3 s pro Vyprodáno množství notebooku, což znamená, že zdrojová data samotná mají chybu. A pokud se podíváme na data z první tabulky do buňky F2, dostaneme stejné # N / A zde.

Za tímto účelem otevřete nový modul ve VBA a napište Subcategory s názvem provedené funkce.

Kód:

 Sub VBA_IfError2 () End Sub 

Vyberte rozsah, ve kterém potřebujeme vidět výstup, nebo přímo aktivovat tuto buňku pomocí ActiveCell následovanou tečkou (.) Příkazového řádku, jak je ukázáno níže.

Kód:

Nyní vyberte FormulaR1C1 ze seznamu, který se používá pro vložení jakékoli funkce Excel.

Nyní použijte stejný vzorec, jaký se používá ve funkci Excel ve VBA.

Kód:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Chyba v Data "") "End Sub 

Nyní vyberte buňku, kde musíme vidět výstup v dosahu. Zde jsme vybrali buňku F3.

Kód:

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

Nyní kompilujte a spusťte kompletní kód pomocí klávesy F5 nebo ručně a podívejte se na výsledek, jak je znázorněno níže.

Jak je vidět na výše uvedeném snímku obrazovky, výstup typu produktu Laptop z první tabulky # N / A je s chybovým textem „ Chyba v datech “, jak je definován v kódu VBA.

Výhody funkce VBA IFERROR

  • Aplikaci funkce IFERROR prostřednictvím VBA trvá jen málo času.
  • Výsledek funkce Excel insert a kódování VBA IFERROR, oba jsou stejné.
  • Můžeme také naformátovat nebo vložit speciální aplikovaný vzorec, abychom se vyhnuli jakémukoli dalšímu problému.

Nevýhody funkce VBA IFERROR

  • IFERROR s touto metodou, odkazování na rozsah vybrané buňky může být narušeno, protože tabulka obsahuje omezené buňky.

Věci na zapamatování

  • Můžeme zaznamenat makro a upravit zaznamenané kódování podle naší potřeby.
  • Vždy pamatujte na uložení souboru ve formátu Excel s makrem, abychom mohli použít nebo vytvořené makro použít bez problémů.
  • Před ukončením příkazové funkce nezapomeňte sestavit celý kód. Tímto způsobem se můžeme vyhnout nebo opravit jakoukoli vzniklou chybu.
  • Vytvořený kód můžete použít na tlačítko nebo kartu a použít jej jediným kliknutím. Toto je nejrychlejší způsob spuštění kódu.
  • Nejlepší způsob, jak se vyhnout jakýmkoli změnám po spuštění kódu, je vložit speciální kompletní buňky tak, aby v buňce nebyl žádný vzorec.

Doporučené články

Toto byl průvodce funkcí Excel VBA IFERROR. Zde jsme diskutovali, jak používat funkci IFERROR ve VBA, spolu s několika praktickými příklady a stahovatelnou šablonou Excel. Můžete také projít naše další doporučené články -

  1. Pole VBA v Excelu
  2. Průvodce formátem čísla VBA
  3. Průvodce po vyhledávání VBA
  4. Jak používat VBA Do while Loop?

Kategorie: