Deși Excel are deja sute de funcții încorporate, cum ar fi SUM, VLOOKUP, LEFT și așa mai departe, funcțiile încorporate disponibile nu sunt de obicei suficiente pentru a îndeplini sarcini destul de complexe. Cu toate acestea, nu vă faceți griji, deoarece trebuie să creați singur funcțiile necesare.
Etapa
Pasul 1. Creați un registru de lucru nou sau deschideți registrul de lucru pe care doriți să-l procesați cu funcțiile definite de utilizator (UDF)
Pasul 2. Deschideți Editorul Visual Basic în Microsoft Excel prin Instrumente-> Macro-> Editorul Visual Basic (sau apăsați comanda rapidă Alt + F11)
Pasul 3. Faceți clic pe butonul Modul pentru a adăuga un nou modul la foaia de lucru
Puteți crea un UDF într-un registru de lucru fără a adăuga un nou modul, dar funcția nu va funcționa în alte foi de lucru din același registru de lucru.
Pasul 4. Creați „capul” sau „prototipul” funcției dvs
Prototipul funcției trebuie să urmeze următoarea structură:
funcție publică "Numele funcției" (parametrul1 Ca tip1, parametru2 Ca tip2) Ca tip de rezultat.
Prototipurile pot avea cât mai multe funcții posibil, iar tipurile lor pot fi toate tipurile de date de bază sau tipurile de obiecte Excel sub formă de Range. Vă puteți gândi la parametri ca „operanți” (operatori) pe care va acționa funcția. De exemplu, când scrieți SIN (45) pentru a calcula sinusul de 45 de grade, numărul 45 va fi luat ca parametru. Apoi, codul funcției va utiliza acele valori pentru a efectua calcule și pentru a afișa rezultatele.
Pasul 5. Adăugați codul funcției pentru a vă asigura că: 1) utilizați valoarea dată de parametru; 2) treceți rezultatul la numele funcției; și 3) închideți funcția cu propoziția "funcție finală" Învățarea programării în VBA sau în orice altă limbă necesită mult timp și îndrumări detaliate. Din fericire, aceste funcții au de obicei blocuri de cod mici și nu folosesc prea mult caracteristicile limbajului de programare. Iată câteva elemente ale limbajului VBA care pot fi utilizate:
- Blocul If (if), care vă permite să executați o porțiune de cod numai dacă este îndeplinită condiția. Ca exemplu:
- . Puteți omite cuvântul cheie Else împreună cu a doua parte a codului, deoarece este opțional.
- Blocul Do (do), care execută o parte din codul While sau Until când sau până când se îndeplinește condiția. Ca exemplu:
- . Rețineți și a doua linie care „declară” variabila. Puteți adăuga variabile la codul dvs. pentru o utilizare ulterioară. Variabilele acționează ca valori temporare în cod. În cele din urmă, considerați declarația funcției ca fiind BOOLEAN, care este un tip de date care permite doar valori ADEVĂRATE sau FALSE. Această metodă de determinare a numerelor prime este departe de a fi optimă, dar codul a fost scris în așa fel încât să fie ușor de citit.
- Pentru bloc (to), care execută o anumită cantitate de cod. Ca exemplu:
- O valoare constantă care este tastată direct în formula celulei. În acest caz, textul (șirul) trebuie citat.
- Referințe celulare, de exemplu B6 sau de genul A1: C3 (parametrul trebuie să fie tipul de date „Range”)
-
O altă funcție care este inclusă în funcția dvs. (funcția dvs. poate fi inclusă și într-o altă funcție), de exemplu: = Factorial (MAX (D6: D8))
Pasul 7. Asigurați-vă că rezultatele sunt corecte
Folosiți-l de mai multe ori pentru a vă asigura că funcția este capabilă să gestioneze corect diferite valori ale parametrilor:
sfaturi
- Când scrieți blocuri de cod în structuri de control precum If, For, Do etc., asigurați-vă că ați introdus (introduceți marginea stânga ușor în interior) blocul de cod apăsând bara de spațiu de mai multe ori sau tab. Acest lucru va face codul mai ușor de înțeles și erorile vor fi mult mai ușor de găsit. În plus, creșterea funcționalității devine mai ușor de realizat.
- Dacă nu știți cum să scrieți cod pentru funcții, citiți articolul Cum se scrie un macro simplu în Microsoft Excel.
- Uneori, funcțiile nu au nevoie de toți parametrii pentru a calcula rezultatul. În acest caz, puteți utiliza cuvântul cheie opțional înainte de numele parametrului din antetul funcției. Puteți utiliza funcția IsMissing (nume_parametru) din codul dvs. pentru a determina dacă unui parametru i se atribuie o valoare sau nu.
- Utilizați numele neutilizate ca funcții în Excel, astfel încât să nu fie suprascrise și șterse funcții.
- Excel are multe funcții încorporate și majoritatea calculelor pot fi efectuate folosind aceste funcții încorporate, fie individual, fie simultan. Asigurați-vă că aruncați o privire la lista funcțiilor disponibile înainte de a începe să vă codificați. Executarea se poate face mai repede dacă utilizați funcții încorporate.
Avertizare
- Din motive de securitate, mulți oameni dezactivează macrocomenzile. Asigurați-vă că anunțați destinatarii registrului de lucru că registrul de lucru trimis are macrocomenzi și că aceste macrocomenzi nu le vor afecta computerele.
- Funcția utilizată în acest articol nu este cel mai bun mod de a rezolva problema aferentă. Exemplul este folosit pentru a explica utilizarea structurilor de control al limbajului.
- VBA, ca și alte limbi, are alte câteva structuri de control în afară de Do, If și For. Structura discutată aici descrie doar ce se poate face în codul sursă al funcției. Există multe ghiduri pe internet care pot fi folosite pentru a vă ajuta să învățați VBA.
Rezultatul cursului funcției publice (ca valoare de număr întreg) Ca șir
Dacă valoarea> = 5 Atunci
Rezultate curs = "Acceptat"
Altfel
Rezultate curs = "Respins"
End If
Funcția de sfârșit
Observați elementele din blocul de cod If:
Condiție IF cod THEN cod ELSE cod FINALIZARE IF
Funcția publică BilPrima (valoare ca întreg) Ca boolean
Dim i Integer
i = 2
BilPrima = Adevărat
Do
Dacă valoare / i = Int (valoare / i) Atunci
BilPrima = False
End If
i = i + 1
Buclați în timp ce i <value Și NumberPrima = True
Funcția de sfârșit
Uită-te din nou la elementele:
Codul DO LOOP WHILE / PÂNĂ la starea
Funcția funcțională publică (valoare ca număr întreg) cât mai lungă
Diminuează rezultatele atât de lungi
Dim i Integer
Dacă valoarea = 0 Atunci
rezultat = 1
Valoare ElseIf = 1 Apoi
rezultat = 1
Altfel
rezultat = 1
Pentru i = 1 A evalua
rezultat = rezultat * i
Următorul
End If
Factorial = rezultat
Funcția de sfârșit
Uită-te din nou la elementele:
Variabilă = limită inferioară TO limită superioară a codului NEXT
. De asemenea, rețineți elementul ElseIf suplimentar în instrucțiunea If, care vă permite să adăugați mai multe opțiuni la codul executat. În cele din urmă, luați în considerare funcția „rezultat” și variabila declarată ca Long. Tipul de date Long permite valori mult mai mari decât Integer.
Mai jos este afișat codul pentru o funcție care convertește numere mici în cuvinte.
Pasul 6. Reveniți la registrul de lucru și utilizați funcția scriind simbolul „egal” (=) urmat de numele funcției din celulă
Scrieți parantezele de deschidere („(“) după numele funcției, folosind semnul comă pentru a separa parametrii și a se termina cu paranteze de închidere („)”). Ca exemplu:
= LetterToLetter (A4)
. De asemenea, puteți utiliza formule de casă căutându-le în categorii Definit de utilizator în interiorul opțiunii Insert Formula. Doar faceți clic pe buton Fx în stânga barei de formule. Există trei tipuri de forme de parametri în funcții: