Kasutaja määratud funktsioon VBA-s - Kuidas UDF-i luua? (Näited)

Lang L: none (table-of-contents)

Exceli VBA kasutaja määratud funktsioon (UDF)

Microsoft teenindab meid Excelis töö kiirendamiseks paljude sisseehitatud funktsioonidega. Kuid VBA kodeerimise abil saame luua oma funktsioonid ja neid funktsioone nimetatakse tehniliselt kasutaja määratud funktsioonideks ( User Defined Functions ). Exceli VBA-s nimetatakse neid ka "kohandatud funktsioonideks".

Kõiki valemeid, millele saab töölehelt juurde pääseda koodiga, nimetatakse UDF-ks. Lihtsamalt öeldes nimetatakse mis tahes valemit, mis pole sisseehitatud, kuid on Excelis saadaval, kasutaja määratud funktsioonideks.

Kuidas luua kasutaja määratud funktsioone?

Kuigi UDF on osa meie moodulist, ei kuulu need meie tavalisse VBA alamprogrammi. VBA-s nimetatakse seda funktsiooni protseduuriks. Sarnaselt sellele, kuidas alustame makrokodeerimist sõnaga SUB, peame seda alustama ka sõna „Funktsioon” abil. Alamprotseduuril on algus ja lõpp, sarnaselt funktsioonile Protseduur on algus ja lõpp.

Näide # 1 - lihtsa UDF-summa funktsiooni loomine

Loome Excelis oma SUM-funktsiooni, liites kaks numbrit.

  • Kodeerimise alustamiseks alustage ühes moodulist sõna “Funktsioon”.
  • Nagu makro sarnaseks nimetamiseks, peame ka meie Funktsioonile nime panema. Seda nime kasutatakse valemina.

Erinevalt alamprogrammist ei saa me protseduuri loomiseks lihtsalt sisestusklahvi vajutada, kuid siin peame mainima argumente.

Näiteks vaadake töölehe funktsiooni SUM allpool olevat süntaksit.

Number 1, number 2 on funktsiooni SUM argumendid.

  • Samamoodi peame mainima oma argumente.

Siin olen deklareerinud argumendid "x täisarvuna" ja "y täisarvuna". Kuna lisame arvulise väärtuse, peame andmetüübi määrama ainult arvandmetüübina.

Pärast argumentide deklareerimist olen määranud ka täisarvu tagasitüübi, kuna funktsiooni “OurSum” antud tulemus on ka arvuline väärtus.

  • Nüüd funktsiooni sees peame mainima valemit, mida kavatseme kasutada. Alustuseks peame siin kasutama funktsiooni.

Mainisime, et valemi nimi “ OurSum ” peaks lisama x ja y.

  • Ok, salvestage kood ja minge töölehele.
  • Olen siia sisestanud paar numbrit. Avage võrdusmärk ja alustage OurSumi tippimist. Valemi nime näete siin.
  • Nagu see, kuidas me lahtrid valime, valib sarnaselt kaks lahtrit eraldi.
  • Pärast kahe lahtri valimist vajutage tulemuste saamiseks sisestusklahvi.

Nii et see töötab täpselt samamoodi nagu meie tavaline SUM-funktsioon.

  • Ok, nüüd muudan numbreid.
  • Nüüd rakendan taas meie loodud funktsiooni.

Oh !!! Saime vea väärtused, välja arvatud esimene lahter.

Kindlasti mõtlete sellele, miks meil viga tekkis.

Kui vaatate lahtrit A2 ja B2, on meil väärtused 48170 ja 21732. Kuna andmetüübiks on määratud täisarv, ei saa see mahutada ühtegi numbrit üle 32767. Seetõttu saime Exceli vea #NUM !.

Nüüd lisan numbrid, mis on väiksemad kui 32767.

Ülaltoodud pildil on kõik arvud täisarvud, st vähem kui 32767.

Esimeses lahtris saime tulemused. Kuid teises lahtris, st C2 lahtris, saime vea väärtuseks #VALUE !.

Kuigi mõlemad arvud on väiksemad kui 32767, saime vea ikkagi.

Seda seetõttu, et oleme deklareerinud lõpptulemuse ka täisarvuna.

Nii et kui lisame 16000 ja 17229, saame väärtuse nagu 33229, mis on suurem kui täisarvu andmetüübi piir 32767. Lõpptulemuseks on vea väärtus.

Näide # 2 - loogiliste väärtuste testimiseks funktsiooni loomine

Loome loogiliste väärtuste testimiseks veel ühe funktsiooni. Vajame funktsiooni, mis tagastab väärtuse „Hea”, kui arv on> = 60, ja tulemuse väärtuseks „halb”, kui arv on <= 50.

1. samm: käivitage funktsioonifunktsioon ja andke protseduurile nimi.

2. samm: andke argumendiks TestScore täisarvuna.

3. samm: meie lõpptulemus peaks olema kas „hea“ või „halb“, nii et tulemus peaks olema stringis.

4. samm: Esiteks peame testima, kas skoor on> = 60 või mitte. Testimiseks kasutage tingimust IF.

5. samm: kui testi tulemus on> = 60, vajame tulemuse tagastamiseks funktsiooni Hea. Nii et TestResult = "Hea".

6. samm: kui testi tulemus on alla 60, peaks funktsiooni tulemus olema halb.

Ok, oleme valmis.

  • Salvestage kood ja minge töölehele.

Testi skoorina olen siia sisestanud mõned numbrid.

  • Tulemuste saamiseks rakendage meie loodud funktsiooni.
  • Valige lahter ja vajutage sisestusklahvi.

See on UDF.

Huvitavad Artiklid...