Stvaranje (prilagođenih) korisnički definiranih funkcija (UDF -ova)

Ovaj će vodič objasniti kako stvoriti korisnički definirane funkcije u VBA -i.

VBA se sastoji od potprocedura i postupaka funkcija. Postupci funkcija vraćaju vrijednost i mogu se pozvati pomoću podprocedura ili se mogu koristiti u Excelovom listu, gdje se vrijednost koju funkcija proizvodi vraća u Excel tablicu. Excel, naravno, ima niz ugrađenih funkcija - poput funkcije zbroja ili funkcije if. Postupci funkcija koje pišete u VBA koriste se na sličan način kao i ugrađena funkcija i poznati su kao Korisnički definirane funkcije (UDF).

Zašto stvoriti UDF?

Nedostaje potrebna funkcija

Jedan od glavnih razloga zašto želite stvoriti UDF u Excelu je to što ne postoji ugrađena funkcija koja će umjesto vas obaviti zadatak. Pisanje vlastite funkcije u VBA obično je najučinkovitiji način rješavanja problema. Dolje prikazana funkcija pretvorit će vrijednost iz kilograma u funte gdje se koristi varijabilni parametar (dblKilo) za dobivanje vrijednosti kilograma za izračun.

Zamijenite potprogram (makro)

Mogli biste napisati podproceduru (makro) kako biste riješili zadatak umjesto vas - ali podprocedure ne vraćaju vrijednost i nisu dinamične - drugim riječima, ako se vrijednosti na vašem radnom listu promijene, morat ćete ponovno pokrenuti makronaredbu kako bi izračuni u makronaredbi ažurirali vaše podatke. Podpostupak u nastavku također bi pretvorio naše kilograme u funte, ali svaki put kad bi se podaci promijenili u A1, morali biste ponovno pokrenuti makro kako biste ažurirali rezultat.

Zamijenite formulu

Možda imate zaista kompliciranu formulu u Excelu koju morate koristiti više puta - stavljanje formule u VBA kôd olakšava čitanje i razumijevanje - kao i možda uklanjanje prostora za greške korisnika prilikom upisivanja formule.

Stvaranje UDF -ova

Da biste stvorili UDF, najprije dodajte modul u Excel radnu knjigu ili, ako imate radnu knjigu Personal Macro, možete upotrijebiti postojeći modul ili dodati novi. Da biste to učinili, morate biti u uređivaču Visual Basic (VBE). Za pristup VBE -u pritisnite ALT + F11 ili kliknite na Visual Basic Option na kartici Developer na vrpci.

SAVJET: Ako na vrpci nemate omogućenu karticu Developer, idite na Datoteka, opcije i kliknite na Prilagodite vrpcu. Provjerite je li potvrđen okvir Developer i kliknite U redu.

Za umetanje novog modula odaberite VBA projekt u koji želite umetnuti modul (ili VBA projekt za trenutnu knjigu u kojoj radite ili Osobna radna knjiga makronaredbi), kliknite na Umetnuti Izbornik i kliknite Modul

Nakon što ste stvorili svoj modul, možete početi stvarati svoj UDF.

Svi UDF -ovi počinju s funkcijom, a zatim imenom UDF -a. Funkcije mogu biti privatne ili javne, ali obično biste htjeli da UDF bude javan kako bi se pojavio u dijaloškom okviru Umetni funkciju u Excelu (pogledajte korištenje funkcije iz Excel lista dalje u ovom članku). Ako ključnu riječ Privatno ne stavite ispred funkcije, tada je funkcija automatski javna.

123 Funkcija TestFunction1 (intA kao cijeli broj) kao cijeli brojTestFunction1 = intA * 7Završna funkcija

Gornja funkcija ima jedan argument (intA). Možete stvoriti funkciju s više argumenata

123 Funkcija TestFunction2 (intA kao cijeli broj, intB kao cijeli broj, intC kao cijeli broj) kao cijeli brojTestFunction2 = (intA * intB) + intCZavršna funkcija

Također možete stvoriti funkciju s izbornim argumentima. Ako je argument izostavljen, možete postaviti zadanu vrijednost za argument u funkciji.

123 Funkcija TestFunction3 (intA kao cijeli broj, intB kao cijeli broj, neobavezno intC kao cijeli broj = 10) kao cijeli brojTestFunction3 = (intA * intB) + intCZavršna funkcija

Korištenje funkcije iz Excel lista

Funkcije koje ste stvorili po defaultu će se pojaviti na vašem popisu funkcija u odjeljku Korisnički definirano na popisu funkcija.

Klikni na fx za prikaz dijaloškog okvira Umetni funkciju.

Odaberi Korisnik definiran s Popisa kategorija

Odaberite željenu funkciju od dostupnih Korisnički definirane funkcije.

Alternativno, kada počnete pisati svoju funkciju u Excelu, funkcija bi se trebala pojaviti na padajućem popisu funkcija.

Spremanje funkcija s Excel datotekom

Budući da su funkcije napisane u VBA kodu, razumljivo je da kôd mora biti dostupan radnoj knjizi kako bi bio dostupan za upotrebu u Excelovom listu. Svoje funkcije možete spremiti u radnu knjigu u kojoj ih koristite ili ih možete spremiti u svoju radnu knjigu osobnih makronaredbi. Vaša je radna knjiga Osobni makro skrivena datoteka koja je dostupna kad god je Excel otvoren i stoga je dostupna za korištenje bilo kojoj radnoj knjizi u Excelu. Obično se stvara kada snimite makronaredbu i odaberete opciju za spremanje makronaredbe u radnu knjigu Personal Macro.

Ako želite zadržati svoje funkcije spremljene u radnoj knjizi na kojoj radite, morat ćete se pobrinuti da prilikom spremanja radne knjige bude spremljena kao "Radna knjiga s omogućenim makronaredbama‘Ili an xlsm datoteka.

wave wave wave wave wave