Crearea funcțiilor definite de utilizator (personalizate) (UDF)

Acest tutorial va explica cum să creați funcții definite de utilizator în VBA.

VBA este alcătuit din proceduri secundare și proceduri funcționale. Procedurile funcționale returnează o valoare și pot fi apelate de Sub Proceduri sau pot fi utilizate în foaia Excel, unde valoarea pe care o produce funcția este returnată în foaia Excel. Desigur, Excel are o serie de funcții încorporate - cum ar fi funcția sumă sau funcția If. Procedurile de funcții pe care le scrieți în VBA sunt utilizate în mod similar cu funcția încorporată și sunt cunoscute sub numele de funcții definite de utilizator (UDF).

De ce să creați un UDF?

Funcția necesară lipsește

Unul dintre principalele motive pentru care doriți să creați un UDF în Excel este că nu există o funcție încorporată existentă care să vă îndeplinească sarcina. Scrierea propriei funcții în VBA este de obicei cel mai eficient mod de a rezolva problema. Funcția de mai jos va converti o valoare de la kilograme la lire sterline în care se utilizează un parametru variabil (dblKilo) pentru a obține valoarea kilogramelor pentru a face calculul.

Înlocuiți o sub-rutină (macro)

Ați putea scrie o procedură secundară (macro) pentru a rezolva sarcina pentru dvs. - dar procedurile secundare nu returnează o valoare și nu sunt dinamice - cu alte cuvinte, dacă valorile din foaia dvs. de lucru se schimbă, ar trebui să rulați din nou macro pentru ca calculele din macro să vă actualizeze datele. Sub-procedura de mai jos ar converti, de asemenea, kilogramele noastre în lire sterline, dar de fiecare dată când datele s-au schimbat în A1, va trebui să rulați macrocomanda pentru a actualiza rezultatul.

Înlocuiți o formulă

Este posibil să aveți o formulă foarte complicată în Excel pe care trebuie să o utilizați în mod repetat - introducerea formulei în codul VBA face mai ușor de citit și de înțeles - precum și, probabil, eliminarea locului pentru erori de utilizator atunci când introduceți formula.

Crearea UDF-urilor

Pentru a crea un UDF, mai întâi adăugați un modul fie în registrul dvs. de lucru Excel, fie, dacă aveți un registru personal de lucru Macro, puteți folosi fie un modul existent, fie adăugați unul nou. Pentru a face acest lucru, trebuie să vă aflați în Visual Basic Editor (VBE). Pentru a ajunge la VBE, apăsați ALT + F11 sau faceți clic pe opțiunea Visual Basic din fila Dezvoltator a panglicii.

BACSIS: Dacă nu aveți fila Dezvoltator activată în panglică, accesați Fișier, Opțiuni și faceți clic pe Personalizați panglica. Asigurați-vă că este bifată caseta de validare Dezvoltator și faceți clic pe OK.

Pentru a insera un nou modul, selectați proiectul VBA în care doriți să introduceți modulul (fie proiectul VBA pentru cartea curentă în care lucrați, fie manualul de lucru personal Macro), faceți clic pe Introduce Meniu și faceți clic pe Modul

Odată ce ați creat modulul, puteți începe să creați UDF.

Toate UDF-urile încep cu funcția și apoi numele UDF-ului. Funcțiile pot fi private sau publice, dar de obicei ați dori ca un UDF să fie public pentru ca acestea să apară în caseta de dialog Inserare funcție din Excel (consultați utilizarea unei funcții dintr-o foaie Excel mai jos în acest articol). Dacă nu puneți cuvântul cheie privat în fața funcției, atunci funcția este automat publică.

123 Function TestFunction1 (intA As Integer) As IntegerTestFunction1 = intA * 7Funcția de sfârșit

Funcția de mai sus are un singur argument (intA). Puteți crea o funcție cu mai multe argumente

123 Funcția TestFunction2 (intA As Integer, intB As Integer, intC As Integer) As IntegerTestFunction2 = (intA * intB) + intCFuncția de sfârșit

De asemenea, puteți crea o funcție cu argumente opționale. Dacă argumentul este omis, puteți seta o valoare implicită pentru argumentul din funcție.

123 Funcția Test Funcția 3 (intA Ca întreg, intB Ca întreg, opțional intC Ca întreg = 10) Ca întregTestFunction3 = (intA * intB) + intCFuncția de sfârșit

Utilizarea unei funcții dintr-o foaie Excel

Funcțiile pe care le-ați creat vor apărea implicit în lista de funcții din secțiunea Definită de utilizator din lista de funcții.

Faceți clic pe fx pentru a afișa caseta de dialog Inserare funcție.

Selectați Definit de utilizator din lista de categorii

Selectați funcția de care aveți nevoie din cea disponibilă Funcții definite de utilizator.

Alternativ, când începeți să scrieți funcția în Excel, funcția ar trebui să apară în lista derulantă de funcții.

Salvarea funcțiilor cu fișierul Excel

Deoarece funcțiile sunt scrise în cod VBA, este logic că codul trebuie să fie disponibil pentru registrul de lucru pentru a fi disponibil pentru a fi utilizat în foaia Excel. Puteți fie să vă salvați funcțiile în registrul de lucru în care le utilizați, fie să le salvați în registrul dvs. de lucru Macro personal. Registrul dvs. de lucru Macro personal este un fișier ascuns care este disponibil ori de câte ori este deschis Excel și, prin urmare, este disponibil pentru orice registru de lucru din Excel. În mod normal, este creat atunci când înregistrați o macrocomandă și selectați opțiunea de a stoca macrocomanda în registrul de lucru pentru macrocomenzi personale.

Dacă doriți să vă păstrați funcțiile salvate în registrul de lucru la care lucrați, va trebui să vă asigurați că, atunci când salvați registrul de lucru, acesta este salvat ca „Cartea de lucru activată pentru macro'Sau un xlsm fişier.

wave wave wave wave wave