Stvaranje prilagođene funkcije u programu Excel

Napomena: Željeli bismo vam pružiti najnoviji sadržaj pomoći što je brže moguće i to na vašem jeziku. Ova je stranica strojno prevedena te može sadržavati gramatičke pogreške ili netočnosti. Naša je namjera da vam ovaj sadržaj bude koristan. Možete li nam pri dnu ove stranice javiti jesu li vam ove informacije bile korisne? Kao referencu možete pogledati i članak na engleskom jeziku.

Iako se Excel obuhvaća više od funkcija ugrađene radnog lista, vjerojatno ne sadrži funkciju za svaku vrstu izračuna obavljate. Dizajneri programa Excel nije vjerojatno će potrebama izračuna za svakog korisnika. Umjesto toga, Excel omogućuje vam omogućuje stvaranje prilagođenih funkcija koje su objašnjene u ovom članku.

Prilagođene funkcije, kao što su makronaredbe pomoću jezika Visual Basic for Applications (VBA) programskom jeziku. Mogu se razlikovati od makronaredbe na dva načina značajan. Najprije umjesto procedura Sub koriste funkcije postupke. To je u početku su funkcije izjava umjesto izjava Sub i end pomoću Funkcije završetka umjesto End Sub. Drugo, oni izračunavati umjesto poduzimanja akcija. Određene vrste naredbe, kao što su naredbe koje odabir i oblikovanje raspona, bit će izuzeti iz prilagođene funkcije. U ovom se članku ćete saznati kako stvoriti i koristiti prilagođene funkcije. Da biste stvorili funkcije i makronaredbe, radite s Visual Basic Editor (VBE)koji se otvara u novom prozoru osim onih iz programa Excel.

Pretpostavimo da se vaša tvrtka nudi količina popust od 10 posto na za više od 100 jedinica je prodaja nekog proizvoda naveden redoslijed. U sljedećim odlomcima smo će demonstrirati funkciju da biste izračunali ovaj popust.

U sljedećem primjeru pokazuje obrascu narudžbe koji navodi svake stavke, količina, cijena, popust (ako ih ima), a rezultat Proširena cijena.

Primjer narudžbenica bez prilagođene funkcije

Da biste stvorili prilagođenu funkciju POPUSTA u ovoj radnoj knjizi, slijedite ove korake:

  1. Pritisnite Alt + F11 da biste otvorili Visual Basic Editor (na Mac, pritisnite FN + ALT + F11), a zatim kliknite Umetni > Modul. Pojavit će se novi prozor Modul na desnoj strani programa Visual Basic Editor.

  2. Kopirajte i zalijepite sljedeći kod da biste novi modul.

    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

Napomena: Da biste bili čitljiviji kodu, možete koristiti tipku Tab da biste uvukli retke. Uvlačenje namijenjena samo prednosti i nije obavezan, kao što je kod će pokrenuti sa ili bez nje. Nakon što upišete uvučenom retku, Visual Basic Editor pretpostavlja sljedeći redak bit će slično uvučeni. Da biste premjestili (to jest, s lijeve strane) tabulatore jedan znak, pritisnite Shift + Tab.

Sada ste spremni pomoću nove funkcije POPUST. Zatvorite Visual Basic Editor, odaberite ćeliju G7 i upišite sljedeće:

=DISCOUNT(D7,E7)

Excel izračunava 10 posto popust na 200 jedinice pri $47.50 po jedinici i vraća $950.00.

U prvom retku VBA kod, DISCOUNT(quantity, price) funkcija naznačen funkciju POPUST potrebna dva argumenta, Količina i cijena. Kada poziv funkciju u ćeliji na radnom listu, morate uključiti ta dva argumenta. U formulu = DISCOUNT(D7,E7), D7 je argument Količina i E7 argument cijena . Sada možete kopirati formulu POPUSTA G8:G13 radi dohvaćanja rezultata prikazano u nastavku.

Ćemo razmotriti kako Excel tumači postupak (opis funkcije). Kada pritisnete tipku Enter, Excel traži naziv POPUSTA u trenutnoj radnoj knjizi i pronalazi je prilagođenu funkciju u VBA modulu. Nazive argumenata u zagradama, Količina i cijenasu rezervirana mjesta za vrijednosti na kojem se temelji izračuna popust.

Primjer narudžbenica pomoću prilagođene funkcije

Na ako naredbi u sljedeće blokova Šifra ispituje argument Količina i određuje je li broj prodanih proizvoda veća od ili jednaka 100:

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

Ako je broj prodanih proizvoda veći od ili jednak 100, VBA izvršava sljedeće naredbe koje množi vrijednost količinu u vrijednosti cijene , a zatim rezultat množi s 0,1:

Discount = quantity * price * 0.1

Rezultat je pohranjena kao varijabla popust. Izjava o VBA koje pohranjuje vrijednosti u varijablu naziva izjavu o dodjeljivanju jer vrednuje izraz na desnoj strani znaka jednakosti i rezultat dodjeljuje naziv varijable na lijevoj strani. Jer je varijabla popust ima isti naziv kao i funkcija, vrijednosti pohranjene u varijablu se vraćaju u formule radnog lista koji pod nazivom funkcija POPUST.

Ako je Količina manje od 100, VBA izvršava sljedeće naredbe:

Discount = 0

Na kraju, sljedeća naredba zaokružuje vrijednost dodijeljena varijablu popust s dva decimalna mjesta:

Discount = Application.Round(Discount, 2)

VBA ima bez funkcije ROUND, ali ne u programu Excel. Stoga, da biste koristili ROUND izjavu o zaštiti, recite VBA da biste potražili metodu Round (funkcija) u objekt aplikacije (Excel). To učiniti tako da dodate riječ aplikacije prije riječi Round. Kada morate pristupiti funkcija programa Excel u VBA modulu, koristite sljedeću sintaksu.

Prilagođene funkcije morate započeti s funkcija izjava i završavaju na kraj funkcija iskaz. Uz naziv funkcije izjava funkcija obično određuje jedan ili više argumenata. Međutim, možete stvoriti funkcije s nema argumenata. Excel sadrži nekoliko ugrađene funkcije – RAND i NOW, na primjer – koje ne koristite argumente.

Pratiti izjava funkcija funkcijska procedura sadrži jednu ili više VBA naredbe koje donošenje odluka i izračunavati uz argumente proslijediti funkciji. Na kraju, negdje u funkcijska procedura morate uključiti naredbu koja se dodjeljuje vrijednost tjednog prikaza kalendara s istim nazivom kao funkcija. Ta vrijednost se vraćaju u formulu koja se poziva funkciju.

Broj ključnih riječi VBA možete koristiti u prilagođenim funkcijama manja od broj možete koristiti u makronaredbi. Prilagođene funkcije nije dopuštena učiniti ništa osim Povratna vrijednost formule na radnom listu ili izraz koji se koristi u drugom VBA makronaredbe ili funkcije. Prilagođene funkcije nije moguće, na primjer, mijenjati veličinu prozora, uredite formulu u ćeliji ili promijeniti font, boje ili uzorka mogućnosti za tekst u ćeliji. Ako kod "Akcije" te vrste obuhvatite funkcijska procedura, funkcija vraća pogrešku #VALUE! Pogreška.

Jednu akciju funkcijska procedura možete učiniti (osim računanje) je prikazati dijaloški okvir. Na iskaz InputBox u prilagođenoj funkciji možete koristiti kao sredstvo početak za unos korisnika izvršavanja funkcije. Izjava o MsgBox možete koristiti kao sredstvo dobiti informacije o korisniku. Možete koristiti prilagođeni dijaloški okviri ili korisnički obrasci, ali je predmet obuhvaćeno ovaj uvodni.

Čak i jednostavne makronaredbe i prilagođene funkcije mogu biti teško čitati. Možete ih izvršiti razumljivijim tako da upišete tekst objašnjenja u obliku komentara. Dodajte komentare tako da prethodi tekst objašnjenja s apostrof. Na primjer, sljedeći primjer prikazuje funkciju POPUSTA s komentarima. Dodavanje komentara kao što su ovi olakšava vi i drugi da biste zadržali VBA kod prolaskom vremena. Ako je potrebno u budućnosti unos promjena u kodu, imat ćete jednostavnije vremena koji se objašnjenje radnje izvorno.

Primjer funkcije VBA s komentarima

Apostrof govori u programu Excel da biste zanemarili sve udesno u istom retku da biste mogli stvoriti komentara ili recima same ili na desnoj strani retke koji sadrže VBA kod. Može započeti relativno dugačkih blok kod s komentarom koji objašnjava njezinu svrhu cjelokupan, a zatim pomoću umetanje komentara u dokument pojedinačne izjave.

Da biste dokument makronaredbe i prilagođene funkcije tako da biste im dodijelili opisne nazive. Na primjer, umjesto naziv makronaredbe oznakekoje nije nazovite ih MonthLabels namjenu preciznije služi za makronaredbu. Korištenje opisni naziva za makronaredbe i prilagođene funkcije osobito je koristan kada ste stvorili više postupaka, osobito ako stvarate postupaka koji imaju slična, ali nije jednaka svrhe.

Kako dokument makronaredbe i prilagođene funkcije je ovisi o osobnom odabiru. Što je važno je prihvaćaju neke metode dokumentaciju i dosljedno korištenje.

Da biste koristili prilagođenu funkciju, radnu knjigu koja sadrži modul u koji ste stvorili funkciju mora biti otvoren. Ako taj radna knjiga nije otvorena, prikazat će se #NAME? poruka o pogrešci kada pokušate koristiti funkciju. Ako je referenca funkcija u drugoj radnoj knjizi, mora prethoditi naziv funkcije pod nazivom radnu knjigu u kojoj se nalazi funkciju. Na primjer, ako stvorite funkciju zove POPUST u radnoj knjizi naziva Personal.xlsb i nazovite tu funkciju iz druge radne knjige, morate upisati =personal.xlsb!discount(), ne samo =discount().

Uštedjet ćete si nekoliko pritisaka na tipke (i moguće pogreške u pisanju) tako da odaberete prilagođene funkcije dijaloški okvir Umetanje funkcije. Prilagođene funkcije prikazivati u kategoriji korisnički definirano:

Odabir mogućnosti izraza u oknu Grupiranje, sortiranje i ukupni zbroj

Jednostavniji način da biste prilagođene funkcije dostupne na cijelo vrijeme je da biste ih spremiti u nekoj drugoj radnoj knjizi, a zatim spremite tu radnu knjigu kao dodatak. Zatim možete napraviti programski dodatak dostupna prilikom svakog pokretanja programa Excel. Evo kako to učiniti:

  1. Nakon stvaranja funkcije potrebno, kliknite datoteka > Spremi kao.

    U Excel 2007, kliknite Gumb Microsoft Office, a zatim kliknite Spremi kao

  2. U dijaloškom okviru Spremi kao otvorite padajući popis Spremi kao vrstu pa odaberite Dodatak programa Excel. Spremite radnu knjigu u odjeljku može prepoznati naziv, primjerice MyFunctionsu mapu dodataka . Dijaloški okvir Spremanje u obliku će predložiti tu mapu da bi se sve što trebate napraviti je prihvatite zadano mjesto.

  3. Nakon spremanja radne knjige, kliknite datoteka > Mogućnosti programa Excel.

    U Excel 2007, kliknite Gumb Microsoft Office, a zatim Mogućnosti programa Excel.

  4. U dijaloškom okviru Mogućnosti programa Excel kliknite kategoriju Dodaci .

  5. Na padajućem popisu Upravljanje odaberite Dodaci programa Excel. Kliknite gumb Idi .

  6. U dijaloškom okviru Dodaci potvrdite okvire uz naziv koji ste koristili za spremanje radne knjige, kao što je prikazano u nastavku.

    add-ins dialog box

  1. Nakon stvaranja funkcije potrebno, kliknite datoteka > Spremi kao.

  2. U dijaloškom okviru Spremi kao otvorite padajući popis Spremi kao vrstu pa odaberite Dodatak programa Excel. Spremite radnu knjigu u odjeljku može prepoznati naziv, primjerice MyFunctions.

  3. Nakon spremanja radne knjige, kliknite Alati > Dodaci programa Excel.

  4. U dijaloškom okviru Dodaci odaberite gumb Pregledaj da biste pronašli dodatka, kliknite Otvori, a zatim potvrdite okvir uz svoje programski dodatak u okviru Dostupni dodaci .

Nakon što napravite te korake, prilagođene funkcije bit će dostupni prilikom svakog pokretanja programa Excel. Ako želite dodati u biblioteku funkcija, vratite se u programu Visual Basic Editor. Ako tražite u programu Visual Basic Editor Project Explorer ispod naslova VBAProject, vidjet ćete modulu naziva nakon datoteku dodatka. Vaš dodatak će imati .xlam nastavak.

Otvaranje datoteke u isključivom načinu

Dvoklikom taj modul u Project Explorer uzrokuje Visual Basic Editor u prikaz kod (opis funkcije). Da biste dodali nove funkcije, nakon završetka funkcija naredbe koja završava zadnje funkcija u prozoru koda smjestite točku unosa i počnite pisati. Možete stvoriti kao mnoge funkcije potrebna na taj način, a uvijek će biti dostupni u kategoriji korisnički definirano u dijaloškom okviru Umetanje funkcije .

Sadržaj je izvorno autor Označi Dodge i Craig Stinson kao dio sustava Microsoft Office Excel 2007 unutrašnji izvansvoje adresara. Je od ažuriran da biste primijenili novije verzije programa Excel kao i.

Je li vam potrebna dodatna pomoć?

Postavite pitanje stručnjaku u tehničkoj zajednici za Excel, zatražite podršku u zajednici za odgovore ili predložite novu značajku ili poboljšanje na forumu za Excel User Voice.

Proširite svoje vještine korištenja sustava Office
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×