Vartotojo nustatyta funkcija VBA - Kaip sukurti UDF? (Pavyzdžiai)

„Excel VBA“ vartotojo nustatyta funkcija (UDF)

„Microsoft“ teikia mums daugybę integruotų funkcijų, kad pagreitintume „Excel“ darbą. Tačiau naudodami VBA kodavimą galime susikurti savo funkcijas ir tos funkcijos techniškai vadinamos „vartotojo nustatytomis funkcijomis“ (UDF). „Excel VBA“ jos taip pat vadinamos „pasirinktinėmis funkcijomis“.

Bet kuri formulė, kurią galima pasiekti iš darbalapio su kodo dalimi, vadinama UDF. Paprasčiau tariant, bet kuri formulė, kuri nėra įmontuota, bet yra pasiekiama „Excel“, vadinama vartotojo nustatytomis funkcijomis.

Kaip sukurti vartotojo nustatytas funkcijas?

Nors UDF yra mūsų modulio dalis, jie nėra įprasto VBA paprogramės dalis. VBA tai vadinama funkcijos procedūra. Kaip ir tai, kaip panašiai pradedame makrokodavimą žodžiu SUB, turime tai pradėti naudodami žodį „Funkcija“. Papildoma procedūra yra pradžia ir pabaiga, panašiai kaip funkcijos pradžia ir pabaiga.

1 pavyzdys - sukurkite paprastą UDF sumos funkciją

„Excel“ sukursime savo SUM funkciją, susumuodami du skaičius.

  • Norėdami pradėti koduoti, pradėkite žodį „Funkcija“ viename iš modulių.
  • Kaip ir tai, kaip panašiai pavadiname makrokomandą, turime nurodyti ir savo funkcijos pavadinimą. Šis vardas naudojamas kaip formulės pavadinimas.

Skirtingai nuo paprogramės, mes negalime tiesiog paspausti „Enter“, kad sukurtume procedūrą, tačiau čia turime paminėti argumentus.

Pavyzdžiui, pažvelkite į žemiau esančią darbalapio funkcijos SUM sintaksę.

Skaičius 1, skaičius 2 yra funkcijos SUM argumentai.

  • Panašiai turime paminėti savo argumentus.

Čia aš paskelbiau argumentus kaip „x kaip sveikas skaičius“ ir „y kaip sveikas skaičius“. Kadangi pridedame skaitinę vertę, duomenų tipą turime priskirti tik kaip skaitinį duomenų tipą.

Paskelbęs argumentus, aš taip pat priskyriau sveikojo skaičiaus grąžinimo tipą, nes funkcijos „OurSum“ pateiktas rezultatas taip pat yra skaitinė reikšmė.

  • Dabar funkcijos viduje turime paminėti formulę, kurią naudosime. Pirmiausia turime naudoti funkciją.

Mes paminėjome formulės pavadinimą „ OurSum “ turėtų būti pridėti x ir y.

  • Gerai, išsaugokite kodą ir eikite į darbalapį.
  • Aš čia įvedžiau keletą numerių. Atidarykite lygybės ženklą ir pradėkite rašyti „OurSum“. Formulės pavadinimą galite pamatyti čia.
  • Kaip ir tai, kaip mes pasirenkame langelius, panašiai pasirenkame dvi ląsteles atskirai.
  • Pasirinkę dvi langelius, paspauskite klavišą Enter, kad gautumėte rezultatų.

Taigi jis veikia lygiai taip pat, kaip ir įprasta mūsų SUM funkcija.

  • Gerai, dabar pakeisiu skaičius.
  • Dabar vėl pritaikysiu mūsų sukurtą funkciją.

Oi!!! Gavome klaidų reikšmes, išskyrus pirmąjį langelį.

Jūs tikriausiai galvojate, kodėl gavome klaidą.

Jei stebite langelius A2 ir B2, turime reikšmes 48170 ir 21732. Kadangi duomenų tipą priskyrėme kaip sveikąjį skaičių, jame negali būti daugiau nei 32767. Tai yra priežastis, kodėl „Excel“ klaidą gavome #NUM !.

Dabar pridėsiu skaičių, kuris yra mažesnis nei 32767.

Ankstesniame paveikslėlyje visi skaičiai yra sveiki skaičiai, ty mažiau nei 32767.

Pirmoje langelyje mes gavome rezultatus. Tačiau antroje ląstelėje, ty C2 langelyje, klaidos reikšmę gavome kaip #VALUE !.

Nors abu skaičiai yra mažesni nei 32767, klaidą vis tiek gavome.

Taip yra todėl, kad galutinį rezultatą paskelbėme ir sveikuoju skaičiumi.

Taigi, kai pridėsime 16000 ir 17229, gausime tokią vertę kaip 33229, kuri yra daugiau nei sveiko skaičiaus duomenų tipo riba 32767. Taigi galutinis rezultatas yra klaidos reikšmė.

2 pavyzdys - sukurkite funkciją, kad patikrintumėte logines vertes

Sukursime dar vieną funkciją, kad patikrintume logines vertes. Mums reikia funkcijos, kuri grąžina „Geras“, jei skaičius yra> = 60, o rezultatas reikalingas kaip „Blogas“, jei skaičius yra <= 50.

1 žingsnis: Pradėkite funkcijos procedūrą ir suteikite procedūrai pavadinimą.

2 žingsnis: Pateikite argumentą kaip „TestScore“ kaip sveikąjį skaičių.

3 žingsnis: mūsų galutinis rezultatas turėtų būti „geras“ arba „blogas“, todėl rezultatas turėtų būti eilutė.

4 žingsnis: Pirmiausia turime patikrinti, ar balas yra> = 60, ar ne. Norėdami išbandyti, naudokite sąlygą IF.

5 žingsnis: jei testo rezultatas yra> = 60, mums reikia funkcijos, kad rezultatas būtų „geras“. Taigi „TestResult“ = „Geras“.

6 žingsnis: Jei testo rezultatas yra mažesnis nei 60, funkcijos rezultatas turėtų būti „Blogas“.

Gerai, mes baigėme.

  • Išsaugokite kodą ir eikite į darbalapį.

Čia įvedžiau keletą skaičių kaip testo balą.

  • Norėdami gauti rezultatus, pritaikykite mūsų sukurtą funkciją.
  • Pasirinkite langelį ir paspauskite Enter.

Tai yra UDF.

Įdomios straipsniai...