Korisnički definirana funkcija u VBA - Kako stvoriti UDF? (Primjeri)

Korisnička definirana funkcija programa Excel VBA (UDF)

Microsoft nam nudi brojne ugrađene funkcije za ubrzavanje rada u Excelu. Međutim, koristeći VBA kodiranje možemo stvoriti vlastite funkcije i te se funkcije tehnički nazivaju "Korisnički definirane funkcije" (UDF). U excelu VBA nazivaju se i "prilagođenim funkcijama".

Bilo koja formula kojoj se može pristupiti s radnog lista s dijelom koda naziva se UDF. Jednostavno rečeno, bilo koja formula koja nije ugrađena, ali je dostupna u Excelu naziva se Korisnički definirane funkcije.

Kako stvoriti korisnički definirane funkcije?

Iako je UDF dio našeg modula, oni nisu dio naše redovite podprograma u VBA. To se u VBA naziva funkcijskim postupkom. Poput toga kako slično započinjemo kodiranje makronaredbi s riječju SUB, to moramo započeti uporabom riječi "Funkcija". Potprocedura ima početak i kraj, slično funkcijskom postupku kao i početak i kraj.

Primjer # 1 - Stvorite jednostavnu funkciju suma UDF-a

Stvorit ćemo vlastitu funkciju SUM u Excelu zbrajanjem dva broja.

  • Da biste započeli kodiranje, započnite riječ "Funkcija" u jednom od modula.
  • Poput kako slično imenujemo makronaredbu, moramo dati naziv i svojoj Funkciji. Ovo se ime koristi kao ime formule.

Za razliku od potprograma, ne možemo jednostavno pritisnuti enter da bismo stvorili postupak, ali ovdje moramo spomenuti argumente.

Na primjer, pogledajte donju sintaksu funkcije radnog lista SUM.

Broj 1, broj 2 argumenti su funkcije SUM.

  • Slično tome, moramo spomenuti svoje argumente.

Ovdje sam argumente proglasio kao "x kao cijeli broj" i "y kao cijeli broj". Budući da dodamo numeričku vrijednost, moramo vrstu podataka dodijeliti samo kao numeričku vrstu podataka.

Nakon deklariranja argumenata, dodijelio sam i vrstu povrata Integer, jer je rezultat koji daje funkcija "OurSum" također numerička vrijednost.

  • Sada unutar funkcije moramo spomenuti formulu koju ćemo koristiti. Ovdje trebamo koristiti funkciju za početak.

Spomenuli smo da bi naziv formule " OurSum " trebao dodati x i y.

  • Ok, spremite kôd i idite na radni list.
  • Ovdje sam unio nekoliko brojeva. Otvorite znak jednakosti i počnite tipkati OurSum. Ovdje možete vidjeti naziv formule.
  • Kao što odabiremo stanice, slično odabiremo dvije stanice zasebno.
  • Nakon odabira dvije ćelije, pritisnite tipku Enter da biste dobili rezultate.

Dakle, radi potpuno isto kao i naša redovita SUM funkcija.

  • Ok, sad ću promijeniti brojeve.
  • Sad ću opet primijeniti funkciju koju smo stvorili.

Oh!!! Dobili smo vrijednosti pogreške, osim za prvu ćeliju.

Sigurno razmišljate o tome zašto smo dobili pogrešku.

Ako promatrate ćelije A2 i B2, imamo vrijednosti 48170 i 21732. Budući da smo tip podataka dodijelili kao Integer, on ne može sadržavati bilo koji broj veći od 32767. To je razlog zašto smo dobili excel pogrešku kao #NUM !.

Sad ću dodati brojeve manje od 32767.

Na gornjoj su slici svi brojevi cjelobrojni brojevi, tj. Manji od 32767.

U prvoj smo ćeliji dobili rezultate. Ali u drugoj ćeliji, tj. C2 ćeliji, dobili smo vrijednost pogreške kao #Vrijednost !.

Iako su oba broja manja od 32767, pogrešku smo i dalje dobili.

To je zato što smo krajnji rezultat proglasili i cjelovitim.

Dakle, kada dodamo 16000 i 17229, dobit ćemo vrijednost poput 33229, što je više od ograničenja cijelog broja podataka od 32767. Dakle, krajnji rezultat je vrijednost pogreške.

Primjer # 2 - Stvorite funkciju za testiranje logičkih vrijednosti

Stvorit ćemo još jednu funkciju za testiranje logičkih vrijednosti. Trebamo funkciju koja vraća "Dobro" ako je broj> = 60, a trebamo rezultat kao "Loše" ako je broj <= 50.

Korak 1: Pokrenite postupak funkcije i dodijelite naziv postupku.

Korak 2: Navedite argument kao TestScore kao cijeli broj.

Korak 3: Naš bi krajnji rezultat trebao biti „Dobar“ ili „Loš“, tako da bi rezultat trebao biti u nizu.

Korak 4: Prvo moramo testirati je li rezultat> = 60 ili ne. Za testiranje upotrijebite uvjet IF.

Korak 5: Ako je rezultat testa> = 60, trebamo funkciju za vraćanje rezultata kao "Dobro". Dakle, TestResult = "Dobro."

Korak 6: Ako je rezultat testa manji od 60, tada bi rezultat funkcije trebao biti "Loš".

Ok, gotovi smo.

  • Spremite kod i idite na radni list.

Ovdje sam unijeo nekoliko brojeva kao testni rezultat.

  • Primijenite funkciju koju smo stvorili da bismo dobili rezultate.
  • Odaberite ćeliju i pritisnite enter.

O tome se radi UDF.

Zanimljivi članci...