Crearea funcții particularizate în Excel

Notă: Dorim să vă oferim cel mai recent conținut de ajutor, cât mai rapid posibil, în limba dvs. Această pagină a fost tradusă automatizat și poate conține erori gramaticale sau inexactități. Scopul nostru este ca acest conținut să vă fie util. Vă rugăm să ne spuneți dacă informațiile v-au fost utile, în partea de jos a acestei pagini. Aici se află articolul în limba engleză, ca să îl puteți consulta cu ușurință.

Deși Excel include o multitudine de funcții predefinite, poate fi acesta nu are o funcție pentru fiecare tip de calcul care îi efectuați. Proiectanții de Excel nu a putut anticipat poate nevoile de calcul fiecare utilizator. În schimb, Excel vă oferă posibilitatea de a crea funcții particularizate, care sunt explicate în acest articol.

Funcții particularizate, cum ar fi macrocomenzi, utilizați Visual Basic for Applications (VBA) limbajul de programare. Acestea diferă de macrocomenzi în două moduri importante. Mai întâi, când utilizați funcția proceduri în loc de Sub proceduri. Care este, se începe cu o instrucțiune funcția în loc de o Sub instrucțiunea și de sfârșit cu Funcția sfârșit în loc de End Sub. Al doilea rând, acestea efectua calcule în loc să ocupe acțiuni. Anumite tipuri de instrucțiuni, cum ar fi angajamente care selectarea și formatarea zone, sunt excluse din funcții particularizate. În acest articol, veți învăța cum să creați și să utilizați funcțiile particularizate. Pentru a crea funcții și macrocomenzile, lucrați cu Visual Basic Editor (VBE), care se deschide într-o fereastră nouă separată de Excel.

Să presupunem că firmei oferă o reducere cantitatea de 10 procente vânzare unui produs furnizate ordinea este pentru mai mult de 100 de unități. În următoarele paragrafe, vom demonstra o funcție pentru a calcula acest discount.

Exemplul de mai jos arată un formular de comandă care listează fiecare element, cantitate, preț, reducere (dacă este cazul) și prețul extins rezultată.

Exemplu de formular de comandă fără o funcție particularizate

Pentru a crea o funcție reducere particularizate în acest registru de lucru, urmați acești pași:

  1. Apăsați Alt + F11 pentru a deschide Visual Basic Editor (pe un Mac, apăsați FN + ALT + F11), apoi faceți clic pe Inserare > modul. Afișează o fereastră nouă de modulul în partea dreaptă a Visual Basic Editor.

  2. Copiați și lipiți următorul cod a modulului nou.

    Function DISCOUNT(quantity, price)
    If quantity >=100 Then
    DISCOUNT = quantity * price * 0.1
    Else
    DISCOUNT = 0
    End If

    DISCOUNT = Application.Round(Discount, 2)
    End Function

Notă: Pentru a face codul mai ușor de citit, utilizați tasta Tab pentru a indenta linii. Indentarea este pentru a beneficia de doar și este opțional, așa cum se va rula cod cu sau fără el. După ce tastați o linie indentată, Visual Basic Editor presupune linia următoare vă va fi indentate în mod similar. Pentru a muta (adică, la stânga) câte o filă de caractere, apăsați Shift + Tab.

Acum sunteți gata să utilizați noua funcție reducere. Închideți Visual Basic Editor, selectați celula G7 și tastați următoarele:

=DISCOUNT(D7,E7)

Excel calculează reducere 10 la sută pe unități 200 la $47.50 unitar și returnează $950.00.

În prima linie a codul VBA, funcția DISCOUNT(quantity, price), ce indică că funcția reducere necesită două argumente, Cantitate și prețul. Atunci când apelați funcția într-o celulă de foaie de lucru, trebuie să includă aceste două argumente. În formula = DISCOUNT(D7,E7), D7 este argumentul Cantitate și E7 este argumentul prețul . Acum puteți să copiați formula reducere la G8:G13 pentru a obține rezultate arată mai jos.

Să luăm în considerare cum Excel interpretează această procedură de tip funcție. Atunci când apăsați Enter, Excel caută numele reducere în registrul de lucru curent și găsește că este o funcție particularizate într-un modul VBA. Nume argument încadrat între paranteze, Cantitate și prețul, sunt substituenți pentru valorile pe care se bazează calculul reducere.

Exemplu de formular de comandă cu o funcție particularizate

Dacă instrucțiunea în următorul bloc de cod examinează argumentul Cantitate și determină dacă numărul de elemente vândute este mai mare sau egal cu 100:

If quantity >= 100 Then
DISCOUNT = quantity * price * 0.1
Else
DISCOUNT = 0
End If

Dacă numărul de elemente vândute este mai mare sau egal cu 100, VBA execută următoarea declarație, care înmulțește valoarea Cantitate valoarea preț , apoi înmulțește rezultatul cu 0,1:

Discount = quantity * price * 0.1

Rezultatul este stocat ca variabilă reducere. O instrucțiune VBA care stochează o valoare într-o variabilă se numește o declarație de atribuire , deoarece evaluează expresia în partea dreaptă a semnului egal și atribuie rezultatul numele variabilei din stânga. Deoarece variabilă reducere are același nume cu funcția procedură, este întoarsă valoarea stocate în variabila la formulă a foii de lucru care numită funcția reducere.

Dacă Cantitate este mai mic decât 100, VBA execută instrucțiunea următoarele:

Discount = 0

În cele din urmă, următoarea declarație rotunjește valoarea atribuite variabilă reducere cu două zecimale:

Discount = Application.Round(Discount, 2)

VBA are nicio funcția ROUND, dar Excel nu. Prin urmare, pentru a utiliza această declaraţie ROUND, care vă spune VBA pentru a căuta metoda Round (funcția) în aplicație obiect (Excel). Puteți face acest lucru adăugând cuvântul aplicație dinaintea cuvântului Round. Utilizați această sintaxă ori de câte ori aveți nevoie pentru a accesa o funcție Excel dintr-un modul VBA.

O funcție particularizate trebuie să începeți cu o instrucțiune funcția și termină cu o declarație de sfârșit funcția. În plus față de numele funcției, declarația funcția specifică, de obicei una sau mai multe argumente. Cu toate acestea, puteți să să creați o funcție fără argumente. Excel include mai multe funcții predefinite, RAND și NOW, de exemplu, care nu se utilizează argumente.

Urmăriți declarația funcția, o procedură funcția include unul sau mai multe angajamente VBA care decizii și a efectua calcule utilizând argumentele transmis funcției. În cele din urmă, undeva din procedura funcția, trebuie să includeți o instrucțiune care atribuie o valoare la o variabilă cu același nume cu funcția. Această valoare este returnată formula care apelează funcția.

Numărul de cuvinte cheie VBA, puteți utiliza în funcții particularizate este mai mică decât numărul puteți utiliza în macrocomenzi. Funcții particularizate nu sunt permise pentru a face ceva diferit returnată o valoare la o formulă într-o foaie de lucru sau o expresie utilizată într-o altă macrocomandă VBA sau funcția. De exemplu, funcții particularizate nu pot redimensionați ferestrele, editarea unei formule într-o celulă sau modifica fontul, culoarea sau model opțiuni pentru text într-o celulă. Dacă includeți "acțiune" cod de acest tip într-o procedură de tip funcție, funcția returnează eroarea #VALUE! eroare.

O acțiune o procedură funcția posibile (cu excepția efectuarea calculelor) se afișează o casetă de dialog. Puteți să utilizați o declarație InputBox într-o funcție particularizat ca mijloc de obținerea de intrare pentru utilizator executa funcţia. Puteți utiliza o instrucțiune MsgBox ca mijloc de transport informații pentru utilizator. De asemenea, puteți utiliza casetele de dialog particularizate sau de utilizator, dar care este un subiect dincolo de aplicare a această introducere.

Chiar simplu de macrocomenzi și funcții particularizate pot fi greu de citit. Le puteți face mai ușor de înțeles, tastând textul explicativ sub formă de comentarii. Puteți adăuga comentarii adăugându-text explicativ cu un apostrof. De exemplu, următorul exemplu arată funcția reducere cu comentarii. Adăugarea de comentarii ca acestea simplifică pentru care sau alte persoane pentru a păstra codul VBA ca timpul trece. Dacă trebuie să efectuați o modificare la codul în viitor, care va avea un timp mai ușor înțelegerea ceea ce ați făcut inițial.

Exemplu de o funcție VBA cu comentarii

Un apostrof comunică Excel pentru a ignora toate elementele din dreapta pe linia, astfel încât să creați comentarii fie pe linii de sine sau în partea dreaptă a liniilor care conține VBA codul. Ce s-ar putea începe un bloc relativ lungi de cod, cu un comentariu care explică scopul său general, apoi utilizați comentariile în linie la documente individuale angajamente.

Altă modalitate de a vă macrocomenzile și funcții particularizate de documente este de a le da un nume descriptiv. De exemplu, mai degrabă decât să numele unei macrocomenzi etichete, care ar putea denumiți-l MonthLabels pentru a descrie mai exact scopul servește macrocomanda. Utilizarea nume descriptiv pentru macrocomenzi și funcții particularizate este utilă mai ales atunci când ați creat mai multe proceduri, în special dacă creați proceduri care au scopuri asemănătoare, dar nu identice.

Cum documentul de macrocomenzi și funcții particularizate este o chestiune de preferințe personale. Ce este important este să adopte o metodă de a documentației, și utilizați-l în mod unitar.

Pentru a utiliza o funcție particularizate, registrul de lucru care conține modul în care ați creat funcția trebuie să fie deschis. Dacă acel registru de lucru nu este deschisă, primiți #NAME? eroare atunci când încercați să utilizați funcția. Dacă aveți faceți referire la funcția în alt registru de lucru, trebuie să puneți numele funcția cu numele registrului de lucru în care se află funcția. De exemplu, dacă creați o funcție numit reducere într-un registru de lucru denumită Personal.xlsb și apelați acea funcție din alt registru de lucru, trebuie să tastați =personal.xlsb!discount(), pur și simplu nu =discount().

Puteți să economisiți câteva apăsări de taste (şi posibile erori de tastare), selectând de funcții particularizate din caseta de dialog Inserare funcție. Funcții de particularizate apar în categoria definit de utilizator:

insert function dialog box

O modalitate mai simplu pentru a vă funcții particularizate disponibile la tot timpul este să le stocheze într-un registru de lucru separată, apoi salvați acel registru de lucru ca un program de completare. Puteți apoi face programul de completare disponibile ori de câte ori rulați Excel. Iată cum să procedați astfel:

  1. După ce ați creat funcții trebuie, faceți clic pe fișier > Salvare ca.

    În Excel 2007, faceți clic pe Butonul Microsoft Officeși faceți clic pe Salvare ca

  2. În caseta de dialog Salvare ca , deschideți lista verticală Salvare cu tipul și selectați Excel Add-In. Salvați registrul de lucru cu un nume de recunoscut, cum ar fi MyFunctions, în folderul de programe de completare . Caseta de dialog Salvare ca va propune acel folder, astfel încât tot ce trebuie să faceți este să accepta locația implicită.

  3. După ce ați salvat registrul de lucru, faceți clic pe fișier > Opțiuni Excel.

    În Excel 2007, faceți clic pe Butonul Microsoft Officeși faceți clic pe Opțiuni Excel.

  4. În caseta de dialog Opțiuni Excel , faceți clic pe categoria Programe de completare .

  5. În lista verticală gestionare , selectați Completare Excel. Apoi faceți clic pe butonul Go .

  6. În caseta de dialog Programe de completare , bifați caseta de selectare de lângă numele utilizat pentru a salva registrul de lucru, așa cum se arată mai jos.

    add-ins dialog box

  1. După ce ați creat funcții trebuie, faceți clic pe fișier > Salvare ca.

  2. În caseta de dialog Salvare ca , deschideți lista verticală Salvare cu tipul și selectați Excel Add-In. Salvați registrul de lucru cu un nume de recunoscut, cum ar fi MyFunctions.

  3. După ce ați salvat registrul de lucru, faceți clic pe Instrumente > Completare Excel.

  4. În caseta de dialog Programe de completare , selectați butonul Răsfoire pentru a găsi de completare, faceți clic pe Deschidere, apoi bifați caseta de lângă de program de completare în caseta Programe de completare disponibile .

După ce urmați acești pași, vă particularizate funcții vor fi disponibile de fiecare dată când rulați Excel. Dacă doriți să adăugați la biblioteca funcția, reveniți la Visual Basic Editor. Dacă citiți în editorul Visual Basic Project Explorer sub un titlu VBAProject, veți vedea modulul denumit după fișierul de program de completare. De completare va avea .xlam interior.

named module in vbe

Făcând dublu clic pe acel modul în Project Explorer cauze Visual Basic Editor pentru a afișa codul funcția. Pentru a adăuga o funcție nouă, poziționați punctul de inserare după instrucțiunea sfârșit funcția care se termină Ultima funcția în fereastra cod și începeți să tastați. Puteți să creați ca multe funcții ca trebuie în acest mod, iar acestea vor întotdeauna fi disponibile în categoria definit de utilizator în caseta de dialog Inserare funcție .

Acest conținut a fost scrisă inițial de Mark Dodge și Craig Stinson ca parte a lor cartea Microsoft Office Excel 2007 interior spre exterior. Deoarece a fost actualizat pentru a aplica la versiuni mai recente de Excel, de asemenea.

Aveți nevoie de ajutor suplimentar?

Puteți întreba întotdeauna un expert de la Excel Tech Community, puteți obține asistență de la comunitatea Answers sau puteți sugera o caracteristică nouă sau o îmbunătățire pe Excel UserVoice.

Extindeți-vă competențele Office
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×