Funcția definită de utilizator în VBA - Cum se creează UDF? (Exemple)

Funcție Excel VBA definită de utilizator (UDF)

Microsoft ne oferă multe funcții încorporate pentru a accelera munca în Excel. Cu toate acestea, folosind codarea VBA, ne putem crea propriile funcții și aceste funcții sunt numite tehnic „Funcții definite de utilizator” (UDF). Ele sunt, de asemenea, numite „funcții personalizate” în excel VBA.

Orice formulă care poate fi accesată din foaia de lucru cu o bucată de cod se numește UDF. În termeni simpli, orice formulă care nu este încorporată, dar disponibilă în Excel, se numește Funcții definite de utilizator.

Cum se creează funcții definite de utilizator?

Chiar dacă UDF face parte din modulul nostru, acestea nu fac parte din Subrutina obișnuită din VBA. Aceasta se numește o procedură de funcționare în VBA. La fel cum începem codarea macro cu cuvântul SUB în mod similar, trebuie să începem acest lucru folosind cuvântul „Funcție”. Procedura secundară are Start și End, în mod similar, Function Function are Start și End.

Exemplul # 1 - Creați o funcție sumă UDF simplă

Vom crea propria noastră funcție SUM în excel prin adăugarea a două numere.

  • Pentru a porni codarea, porniți cuvântul „Funcție” într-unul dintre module.
  • La fel cum denumim macrocomanda în mod similar, trebuie să dăm un nume și funcției noastre. Acest nume este folosit ca nume de formulă.

Spre deosebire de subrutină, nu putem apăsa pur și simplu Enter pentru a crea o procedură, dar trebuie să menționăm argumentele aici.

De exemplu, uitați-vă la sintaxa de mai jos a funcției SUM a foii de lucru.

Numărul 1, Numărul 2 sunt argumente ale funcției SUM.

  • În mod similar, trebuie să menționăm argumentele noastre.

Aici am declarat argumentele ca „x ca întreg” și „y ca întreg”. Deoarece adăugăm valoare numerică, trebuie să atribuim tipul de date doar ca tip de date numerice.

După declararea argumentelor, am atribuit și tipul de returnare al întregului, deoarece rezultatul dat de funcția „Suma noastră” este, de asemenea, o valoare numerică.

  • Acum, în interiorul funcției, trebuie să menționăm formula pe care o vom folosi. Aici trebuie să folosim funcția pentru a începe.

Am menționat că numele formulei „ Suma noastră ” ar trebui să adauge x și y.

  • Ok, salvați codul și accesați foaia de lucru.
  • Am introdus câteva numere aici. Deschideți semnul egal și începeți să tastați OurSum. Puteți vedea numele formulei care apare aici.
  • La fel cum selectăm celulele selectăm în mod similar două celule separat.
  • După selectarea a două celule, apăsați tasta Enter pentru a obține rezultate.

Deci, funcționează exact la fel ca funcția noastră normală SUM.

  • Ok, acum voi schimba numerele.
  • Acum, din nou, voi aplica funcția pe care am creat-o.

Oh!!! Am obținut valori de eroare, cu excepția primei celule.

Trebuie să vă gândiți de ce am primit o eroare.

Dacă observați celula A2 și B2, avem valorile 48170 și 21732. Deoarece am atribuit tipul de date ca întreg, nu poate conține niciun număr mai mare de 32767. Acesta este motivul pentru care am primit eroarea Excel ca #NUM !.

Acum voi adăuga numere mai mici de 32767.

În imaginea de mai sus, toate numerele sunt numere întregi, adică mai mici de 32767.

În prima celulă, am obținut rezultatele. Dar în a doua celulă, adică celula C2, am obținut valoarea erorii ca #VALUE !.

Chiar dacă ambele numere sunt mai mici de 32767, am primit totuși eroarea.

Acest lucru se datorează faptului că am declarat rezultatul final și ca Număr întreg.

Deci, atunci când adăugăm 16000 și 17229, vom obține o valoare ca 33229, care este mai mare decât limita tipului de date întregi de 32767. Deci rezultatul final este o valoare de eroare.

Exemplul # 2 - Creați o funcție pentru a testa valorile logice

Vom crea încă o funcție pentru a testa valorile logice. Avem nevoie de o funcție care returnează „Bine” dacă numărul este> = 60 și avem nevoie de rezultat ca „Bad” dacă numărul este <= 50.

Pasul 1: Porniți procedura de funcționare și dați un nume procedurii.

Pasul 2: dați argumentul ca TestScore ca Integer.

Pasul 3: Rezultatul nostru final ar trebui să fie „Bun” sau „Rău”, astfel încât rezultatul să fie în Șir.

Pasul 4: Mai întâi, trebuie să testăm dacă scorul este> = 60 sau nu. Utilizați condiția IF pentru a testa.

Pasul 5: Dacă scorul testului este> = 60, avem nevoie de funcția pentru a returna rezultatul ca „Bun”. Deci TestResult = „Bun”.

Pasul 6: Dacă scorul testului este mai mic de 60, atunci rezultatul funcției ar trebui să fie „Bad”.

Ok, am terminat.

  • Salvați codul și accesați foaia de lucru.

Am introdus câteva numere aici ca punctaj de testare.

  • Aplicați funcția pe care am creat-o pentru a obține rezultate.
  • Selectați celula și apăsați Enter.

În acest sens este UDF.

Articole interesante...