Funkcia definovaná používateľom vo VBA Ako vytvoriť UDF? (Príklady)

Používateľsky definované funkcie Excel VBA (UDF)

Spoločnosť Microsoft nám poskytuje mnoho vstavaných funkcií na urýchlenie práce v programe Excel. Avšak pomocou kódovania VBA si môžeme vytvoriť vlastné funkcie a tieto funkcie sa odborne nazývajú „User-Defined Functions“ (UDF). V Exceli VBA sa im hovorí aj „vlastné funkcie“.

Akýkoľvek vzorec, ku ktorému je možné získať prístup z hárka s časťou kódu, sa nazýva UDF. Jednoducho povedané, akýkoľvek vzorec, ktorý nie je zabudovaný, ale je k dispozícii v programe Excel, sa nazýva User Defined Functions.

Ako vytvoriť funkcie definované používateľom?

Aj keď je UDF súčasťou nášho modulu, nie sú súčasťou nášho bežného podprogramu vo VBA. Toto sa nazýva funkčný postup vo VBA. Podobne, ako začneme kódovanie makra slovom SUB, musíme to začať aj slovom „Funkcia“. Sub procedúra má začiatok a koniec, podobne ako funkcia Procedúra má začiatok a koniec.

Príklad č. 1 - Vytvorte jednoduchú funkciu súčtu UDF

Vytvorením vlastnej funkcie SUM v programe Excel spočítame dve čísla.

  • Pre spustenie programovania začnite v jednom z modulov slovom „Function“.
  • Podobne ako pomenujeme makro podobne, musíme pomenovať aj našu funkciu. Tento názov sa používa ako názov vzorca.

Na rozdiel od podprogramu nemôžeme jednoducho stlačiť kláves Enter na vytvorenie postupu, ale tu musíme spomenúť argumenty.

Napríklad sa pozrite na nižšie uvedenú syntax funkcie listu SUM.

Číslo 1, číslo 2 sú argumenty funkcie SUM.

  • Podobne musíme spomenúť naše argumenty.

Tu som deklaroval argumenty ako „x ako celé číslo“ a „y ako celé číslo“. Pretože pridávame číselnú hodnotu, musíme údajový typ priradiť iba ako číselný údajový typ.

Po deklarácii argumentov som priradil aj návratový typ Integer, pretože výsledok daný funkciou „OurSum“ je tiež číselná hodnota.

  • Teraz vo vnútri funkcie musíme spomenúť vzorec, ktorý použijeme. Tu musíme najskôr začať používať túto funkciu.

Spomenuli sme, že názov vzorca „ OurSum “ by mal pridať x a y.

  • Dobre, uložte kód a choďte na list.
  • Tu som zadal niekoľko čísel. Otvorte znamienko rovnosti a začnite písať OurSum. Tu môžete vidieť názov vzorca.
  • Podobne, ako vyberáme bunky, podobne vyberte aj dve bunky zvlášť.
  • Po výbere dvoch buniek získate výsledky stlačením klávesu Enter.

Funguje teda úplne rovnako ako naša bežná funkcia SUM.

  • Dobre, teraz zmením čísla.
  • Teraz znova použijem funkciu, ktorú sme vytvorili.

Aha !!! Dostali sme chybové hodnoty okrem prvej bunky.

Určite uvažujete o tom, prečo sme dostali chybu.

Ak sledujete bunku A2 a B2, máme hodnoty 48170 a 21732. Pretože sme dátový typ priradili ako Integer, nemôže obsahovať viac ako 32767. To je dôvod, prečo sme dostali chybu programu Excel ako # ČÍSLO !.

Teraz pridám čísla, ktoré sú menšie ako 32767.

Na obrázku vyššie sú všetky čísla celé čísla, tj menej ako 32767.

V prvej bunke sme dostali výsledky. Ale v druhej bunke, tj. C2 bunke, sme dostali chybovú hodnotu ako #HODNOTA !.

Aj keď sú obe čísla menšie ako 32767, stále sa nám zobrazila chyba.

Je to tak preto, lebo sme konečný výsledok deklarovali tiež ako celé číslo.

Keď teda pridáme 16000 a 17229, dostaneme hodnotu ako 33229, čo je viac ako celočíselný limit dátového typu 32767. Takže konečným výsledkom je chybová hodnota.

Príklad č. 2 - Vytvorenie funkcie na testovanie logických hodnôt

Vytvoríme ešte jednu funkciu na testovanie logických hodnôt. Potrebujeme funkciu, ktorá vráti „Dobrá“, ak je číslo> = 60, a výsledok potrebujeme ako „Zlý“, ak je číslo <= 50.

Krok 1: Spustite funkčný postup a pomenujte postup.

Krok 2: Zadajte argument ako TestScore ako celé číslo.

Krok 3: Náš konečný výsledok by mal byť buď „dobrý“, alebo „zlý“, takže výsledok by mal byť v reťazci.

Krok 4: Najskôr si musíme vyskúšať, či je skóre> = 60 alebo nie. Na test použite podmienku IF.

Krok 5: Ak je skóre testu> = 60, potrebujeme funkciu na vrátenie výsledku ako „Dobrý“. Takže TestResult = “Dobré.”

Krok 6: Ak je skóre testu nižšie ako 60, potom by mal byť výsledok funkcie „Zlý“.

Dobre, skončili sme.

  • Uložte kód a prejdite na pracovný hárok.

Zadal som tu niekoľko čísel ako testovacie skóre.

  • Na dosiahnutie výsledkov použite funkciu, ktorú sme vytvorili.
  • Vyberte bunku a stlačte kláves Enter.

To je to, o čom je UDF.

Zaujímavé články...