Kreiranje prilagođene funkcije u programu Excel

Napomena: Želimo da vam što pre pružimo najnoviji sadržaj pomoći čim na vašem jeziku. Ova stranica je prevedena automatski i može da sadrži gramatičke greške ili netačnosti. Naš cilj je da ovaj sadržaj bude koristan. Možete li nam na dnu ove stranice saopštiti da li su vam informacije bile od koristi? Ovo je članak na engleskom jeziku za brzu referencu.

Iako Excel sadrži veliki broj funkcija ugrađenih radnog lista, moguće je da ona nema funkciju za svaki tip izračunavanja koje izvršavate. Dizajneri programa Excel mogao da predvidite svaki korisnik izračunavanja potrebe. Umesto toga, Excel pruža mogućnost da kreirate prilagođene funkcije koje su opisane u ovom članku.

Prilagođene funkcije, kao što su makroi, koristite programskom jeziku Visual Basic for Applications (VBA) . Se razlikuju od makroa na dva načina značajnog. Prvo, koriste funkcije procedure umesto Sub procedura. To jest, su na početku izjavu funkcija umesto Sub izjavu i završetka Kraj funkcije umesto End Sub. Drugo, oni izračunavanja umesto preduzimanja radnji. Određene vrste izveštaja, kao što su izjave koje izaberite i oblikujte opsega, isključenih iz prilagođene funkcije. U ovom članku, Saznaćete kako da kreirate i koristite prilagođene funkcije. Da biste kreirali funkcije i makroi, radite sa Visual Basic Editor (VBE)koji se otvara u novom prozoru odvojene iz programa Excel.

Ako vaše preduzeće nudi popust na količinu od 10 procenata na Prodaja proizvoda, pod uslovom redosled je za više od 100 jedinica. U narednim pasusima demonstriraćemo funkciju da biste izračunali ovaj popust.

Primer ispod prikazuje narudžbenice koja navodi svaku stavku, količina, cena, popust (ukoliko postoje), a dobijeni proširena cena.

Primer narudžbenicu bez prilagođene funkcije

Da biste kreirali prilagođenu popust funkciju u ovoj radnoj svesci, sledite ove korake:

  1. Pritisnite Tastere Alt + F11 da biste otvorili Visual Basic Editor (na Mac računaru, pritisnite FN + ALT + F11), a zatim kliknite na dugme Umetni > modul. Novi modul prozor se pojavljuje sa desne strane programa Visual Basic Editor.

  2. Kopirajte i nalepite sledeći kôd u 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 kod lakše čitao, možete da koristite taster Tab da biste uvukli linije. Uvlačenje je za vas samo i je opcionalno, kao kôd će se pokretati sa ili bez njega. Nakon što otkucate uvučenom redu, Visual Basic Editor pretpostavlja sledeći red će biti slično uvučeni. Da biste premestili (to jest, levo) jedan tabulatorskim znakom, pritisnite tastere Shift + Tab.

Sada ste spremni da koristite novu funkciju popust. Zatvorite Visual Basic Editor, izaberite ćeliju G7 i otkucajte sledeće:

=DISCOUNT(D7,E7)

Excel izračunava 10 procenata popust na 200 jedinice u 47.50 $ po jedinici i daje $950.00.

U prvom redu vašeg VBA koda, funkcija DISCOUNT(quantity, price) ste naznačili da funkciju popust zahteva dva argumenta "," Količina "i" cena. Kada pozovete funkciju u ćeliji radnog lista, morate da uključite te dva argumenta. U formulu = DISCOUNT(D7,E7), D7 je argument Količina i E7 je argument cena . Sada možete da kopirate formulu popust G8:G13 da biste dobili rezultate što je prikazano ispod.

Razmotrimo kako Excel tumači ovu proceduru funkcije. Kada pritisnete taster Enter, Excel traži ime popust u trenutnoj radnoj svesci i pronalazi je u pitanju prilagođenu funkciju u VBA modulu. Imena argumenata u zagradama, Količina "i" cenasu čuvare mesta za vrednosti na kom se zasniva izračunavanja popust.

Primer narudžbenicu pomoću prilagođene funkcije

Na ako u sledećeg perioda kôd ispituje argument Količina i određuje da li je broj prodatih stavki veći ili jednak 100:

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

Ako je broj prodatih stavki veći ili jednak 100, VBA izvršava sledeći izraz množi vrednost Količina po ceni vrednosti, a zatim rezultat množi sa 0,1:

Discount = quantity * price * 0.1

Rezultat je uskladištena kao promenljiva popust. VBA izjave koje skladišti vrednosti u promenljive se zove izraz dodele zato što se procenjuje izraz sa desne strane znaka jednakosti i dodeljuje rezultat promenljive ime sa leve strane. Pošto promenljiva popust ima isto ime kao procedura funkcije, dobija se vrednosti uskladištene u promenljivu formuli radnog lista koji naziva popust funkcija.

Ako je Količina manje od 100, VBA izvršava sledeći izraz:

Discount = 0

Na kraju, sledeći izraz zaokružuje vrednost dodeljene promenljiva popust na dva decimalna mesta:

Discount = Application.Round(Discount, 2)

VBA ima bez funkcija ROUND, ali Excel ne. Stoga, da biste koristili ROUND ove izjave, recite VBA da biste potražili Round metod (funkcija) u aplikaciji objekta (Excel). Možete da uradite tako što ćete dodati reč aplikacije pre reči Round. Koristite ovu sintaksu svaki put kada treba da pristupite Excel funkcija sa VBA modulu.

Prilagođene funkcije morate da pokrenete pomoću funkcija izjavu i završavati instrukcije kraj funkcije. Pored ime funkcije izjavu funkcija obično definiše jedan ili više argumenata. Međutim, možete da kreirate funkciju sa nema argumente. Excel sadrži nekoliko ugrađenih funkcija – RAND i NOW, na primer – koje ne koristite argumente.

Pratite izjavu funkcija proceduru funkcije sadrži jednu ili više VBA izjave koje odlučivanje i računanje pomoću argumenata prosleđen funkciji. Na kraju, negde u funkcija proceduru, morate da uključite izraza koji dodeljuje vrednost promenljiva sa istim imenom kao funkcija. Ova vrednost se vraćaju u formulu koja poziva funkciju.

Broj VBA ključne reči koje možete koristiti u prilagođenim funkcijama je manja od broja u makroe možete da koristite. Prilagođene funkcije nije dozvoljeno da ništa osim povratna vrednost u formuli u radnom listu ili na izraz koristi u drugom VBA makroa ili funkcija. Na primer, prilagođene funkcije mogu da promenu veličine prozora, uredite formulu u ćeliji, ili promena fonta, boje ili šare opcije za tekst u ćeliji. Ako uključite kôd „radnje” ove vrste u proceduru funkcije, funkcija daje grešku #VALUE! greška.

Jednu radnju proceduru funkcije mogu da uradim (osim izvršavaju izračunavanja) je da biste prikazali dijalog. Možete da koristite instrukcije InputBox u prilagođenoj funkciji kao način za pronalaženje za unos od korisnika koji ste izvršili funkciju. Možete da koristite izjavu o MsgBox kao način da se prenoseći informacije o korisniku. Možete da koristite i prilagođenih dijaloga ili korisnički obrasci, ali to je tema objašnjenja o ovom uvod.

Čak i jednostavne makroa i prilagođene funkcije može biti teško čitati. Da budu lakše razumeti tako što ćete otkucati tekst objašnjenja u vidu komentara. Dodavanje komentara tako što ćete ispred na tekst objašnjenja apostrof. Na primer, sledeći primer prikazuje upotrebu funkcije popust sa komentarima. Dodavanje komentara poput ovih olakšava vi ili neko drugi da biste održali VBA kôd kako vreme prolazi. Ako treba da unesete promenu na kôd u budućnosti, morate je lakše vreme razumevanje ste prvobitno.

Primer VBA funkcije sa komentarima

Apostrof saopštava programu Excel da zanemarite sve nadesno u istom redu, tako da možete da kreirate komentare ili u redovima samostalno ili sa desne strane linija koja sadrži VBA kôd. Možda počnete relativno dugih blok kôd sa komentar koji objašnjava svrhu kompletna i koristite umetnute komentare na pojedinačne izjave dokumenta.

Drugi način da dokumentujete makroi i prilagođene funkcije jeste da biste im dali opisno ime. Na primer, a ne ime makroa oznake, možete da ime ga MonthLabels za opisivanje preciznije svrhu makro služi. Koristeći opisno ime za makroe i prilagođene funkcije je posebno korisno ako ste kreirali veliki broj procedura, naročito ako kreirate procedure koje imaju slična, ali nisu identične svrhe.

Kako dokument makroa i prilagođene funkcije je nekoliko ličnu. Ono što je važno je da usvoje neki metod dokumentacije i koristite ga dosledno.

Da biste koristili prilagođenu funkciju, radna sveska koja sadrži modul u kom ste kreirali funkcija mora biti otvoren. Ako tu radnu svesku nije otvoren, dobijate grešku #NAME? o grešci kada pokušate da koristite funkciju. Ako pozivate funkciju u nekoj drugoj radnoj svesci, mora da prethodi ime funkcije sa imenom radne sveske u kojoj se nalazi funkcija. Na primer, ako kreirate funkciju koja se zove popust u radnoj svesci koja se zove Personal.xlsb i da funkcija call iz druge radne sveske, morate da kucate =personal.xlsb!discount(), ne samo =discount().

Možete da uštedite nekoliko pritisaka na tastere (i moguće greške u kucanju) tako što ćete izabrati vaše prilagođene funkcije u dijalogu Umetanje funkcije. Prilagođene funkcije se pojavljuju u kategoriji korisnički definisane:

insert function dialog box

Lakši način da bi vaše prilagođene funkcije dostupne u sve vreme je da ih skladištite u zasebne radne sveske, a zatim sačuvajte tu radnu svesku kao programski dodatak. Možete zatim da programski dodatak dostupan svaki put kada pokrenete Excel. Evo kako to da uradite:

  1. Pošto ste kreirali funkcije vam je potrebna, izaberite stavke datoteka > Sačuvaj kao.

    U Excel 2007, kliknite na Dugme Microsoft Officei izaberite stavku Sačuvaj kao

  2. U dijalogu Sačuvaj kao otvorite listu padajuće liste Sačuvaj kao tip i izaberite stavku Excel programski dodatak. Sačuvajte radnu svesku u okviru prepoznatljivo ime, kao što su MyFunctions, u fascikli " programski dodaci ". U dijalogu Sačuvaj kao će predložiti tu fasciklu, sve treba da uradite je da prihvatite podrazumevanu lokaciju.

  3. Kada sačuvate radnu svesku, izaberite stavke datoteka > Opcije programa Excel.

    U Excel 2007, kliknite na Dugme Microsoft Officei izaberite stavku Excel opcije.

  4. U dijalogu Opcije programa Excel izaberite kategoriju Programski dodaci .

  5. U padajućoj listi Upravljanje izaberite stavku Programski dodaci za Excel. Zatim kliknite na dugme Idi .

  6. U dijalogu Programski dodaci potvrdite izbor u polju za potvrdu pored stavke ime koje ste koristili da biste sačuvali radnu svesku, kao što je prikazano ispod.

    add-ins dialog box

  1. Pošto ste kreirali funkcije vam je potrebna, izaberite stavke datoteka > Sačuvaj kao.

  2. U dijalogu Sačuvaj kao otvorite listu padajuće liste Sačuvaj kao tip i izaberite stavku Excel programski dodatak. Sačuvajte radnu svesku u okviru prepoznatljivo ime, kao što su MyFunctions.

  3. Kada sačuvate radnu svesku, kliknite na dugme Alatke > Programski dodaci za Excel.

  4. U dijalogu Programski dodaci kliknite na dugme Pregledaj da biste pronašli programski dodatak, kliknite na dugme Otvori, a zatim potvrdite izbor u polju pored Vaš programski dodatak u okviru Dostupni programski dodaci .

Nakon što ste ispratili ove korake, vaše prilagođene funkcije će biti dostupan svaki put kada pokrenete Excel. Ako želite da dodate u biblioteku funkcija, vratite programa Visual Basic Editor. Ako pogledate u programu Visual Basic Editor Istraživač projekta u okviru VBAProject naslova, videćete modula po datoteci programski dodatak. Vaš programski dodatak će imati lokala .xlam.

named module in vbe

Dvaput kliknite na taj modul u oknu Istraživač projekta dovodi do programa Visual Basic Editor da biste prikazali funkcija kod. Da biste dodali nove funkcije, nakon završetka funkcija instrukciji koja prekida poslednje funkcije u prozoru kôda mesto umetanja i počnite da kucate. Možete da kreirate kao mnoge funkcije treba na ovaj način, a oni će uvek biti dostupni i u kategoriji korisnički definisane u dijalogu Umetanje funkcije .

Ovaj sadržaj prvobitno deklarisani tako što ćete znak Dodge i Craig Stinson kao deo sistema Microsoft Office Excel 2007 Inside Outknjige. Kad je ažuriran da biste primenili na novijim verzijama programa Excel.

Potrebna vam je dodatna pomoć?

Možete uvek da postavite pitanje stručnjaku u zajednici Excel Tech Community, dobijete podršku u zajednici Answers community ili predložite novu funkciju ili poboljšanje na sajtu Excel User Voice.

Razvijte Office veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×