Sadržaj
Danas ćemo nastaviti istraživati prilagođene Excel funkcije. Kako već znate kako stvoriti UDF-ove (i, nadam se, pokušali ste ih primijeniti u svom Excelu), idemo malo dublje i naučimo kako koristiti i pohranjivati korisnički definirane funkcije u Excelu.
Štoviše, pokazat ćemo vam kako jednostavno spremiti svoje funkcije u datoteku dodatka programa Excel da biste ih kasnije koristili u nekoliko klikova.
Dakle, evo o čemu ćemo razgovarati:
Različiti načini korištenja UDF-ova u Excelu
Korištenje UDF-ova u radnim listovima
Nakon što ste provjerili da vaši UDF-ovi rade ispravno, možete ih koristiti u Excelu formule ili u VBA kodu.
Možete primijeniti prilagođene funkcije u Excel radnoj knjizi na isti način kao što koristite obične funkcije. Na primjer, samo napišite u ćeliju formulu ispod:
= GetMaxBetween(A1:A6,10,50)
UDF se može koristiti u kombinaciji s uobičajenim funkcijama. Na primjer, dodajte tekst izračunatoj maksimalnoj vrijednosti:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Možete vidjeti rezultat na snimci zaslona u nastavku:
Vi može pronaći broj koji je i najveći i nalazi se u rasponu od 10 do 50.
Provjerimo drugu formulu:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Prilagođena funkcija GetMaxBetween provjerava raspon B2:B9 i pronalazi maksimalan broj između 10 i 50. Zatim, koristeći INDEX + MATCH, dobivamo naziv proizvoda koji odgovara ovoj maksimalnoj vrijednosti:
Kao što vidite, korištenje prilagođenih funkcija ne razlikuje se previše od običnog Excelafunkcije.
Kada to radite, zapamtite da korisnički definirana funkcija može vratiti samo vrijednost, ali ne može izvršiti nikakve druge radnje. Pročitajte više o ograničenjima korisnički definiranih funkcija.
Korištenje UDF-a u VBA procedurama i funkcijama
UDF-ovi se također mogu koristiti u VBA makronaredbama. Ispod možete vidjeti kod makronaredbe koji traži maksimalnu vrijednost u rasponu od 10 do 50 u stupcu koji sadrži aktivnu ćeliju.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Ćelije(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells, 10, 50) i = Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubMakro kod sadrži prilagođenu funkciju
GetMaxBetween(.Cells, 10, 50)
It pronalazi najveću vrijednost u aktivnom stupcu. Ta će vrijednost tada biti istaknuta. Možete vidjeti rezultat makronaredbe na snimci zaslona u nastavku.
Prilagođena funkcija također se može koristiti unutar druge prilagođene funkcije. Ranije smo na našem blogu razmatrali problem pretvaranja broja u tekst pomoću prilagođene funkcije pod nazivom SpellNumber .
Uz njezinu pomoć možemo dobiti maksimalnu vrijednost iz raspona i odmah zapišite to kao tekst.
Da bismo to učinili, stvorit ćemo novu prilagođenu funkciju u kojoj ćemo koristiti funkcije GetMaxBetween i SpellNumber koji su nam već poznati.
Funkcija SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End FunkcijaKao što vidite, funkcija GetMaxBetween je argument druge prilagođene funkcije, SpellNumber . Definira maksimalnu vrijednost, kao što smo radili mnogo puta prije. Taj se broj zatim pretvara u tekst.
Na gornjoj snimci zaslona možete vidjeti kako funkcija SpellGetMaxBetween pronalazi maksimalan broj između 100 i 500 i zatim ga pretvara u tekst.
Pozivanje UDF-a iz drugih radnih knjiga
Ako ste stvorili UDF u svojoj radnoj knjizi, to, nažalost, ne znači da se nećete suočiti s nikakvim problemima.
Prema mom iskustvu, većina korisnika prije ili kasnije stvori svoju osobnu kolekciju makronaredbi i prilagođenih funkcija za automatizaciju pojedinačnih procesa i izračuna. I tu nastaje problem - kôd korisnički definiranih funkcija u Visual Basicu treba negdje pohraniti kako bi se kasnije koristio u radu.
Da biste primijenili prilagođenu funkciju, radna knjiga u koju ste je spremili mora biti otvorena u vašem Excelu. Ako nije, dobit ćete #IME! greška prilikom pokušaja korištenja. Ova pogreška označava da Excel ne zna naziv funkcije koju želite koristiti u formuli.
Pogledajmo načine ukoje možete koristiti prilagođene funkcije koje stvorite.
Metoda 1. Dodajte naziv radne knjige funkciji
Možete navesti naziv radne knjige u kojoj se nalazi prije naziva funkcija. Na primjer, ako ste spremili prilagođenu funkciju GetMaxBetween() u radnu knjigu pod nazivom My_Functions.xlsm , tada morate unijeti sljedeću formulu:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Metoda 2. Pohranite sve UDF-ove u jednu zajedničku datoteku
Spremite sve prilagođene funkcije u jednu posebnu radnu knjigu (na primjer, My_Functions.xlsm ) i kopirajte željenu funkciju iz nje u trenutnu radnu knjigu, ako je potrebno.
Svaki put kada stvorite novu prilagođenu funkciju, trebate duplicirati njezin kod u radnoj knjizi u kojoj ćete je koristiti. S ovom metodom može se pojaviti nekoliko neugodnosti:
- Ako ima puno radnih datoteka, a funkcija je potrebna posvuda, tada će se kôd morati kopirati u svaku knjigu.
- Ne zaboravite spremiti radnu knjigu u formatu s omogućenim makronaredbama (.xlsm ili .xlsb).
- Prilikom otvaranja takve datoteke, zaštita od makronaredbi će svaki put prikazati upozorenje koje mora biti potvrđeno. Mnogi se korisnici uplaše kada vide žutu traku upozorenja koja od njih traži da omoguće makronaredbe. Kako biste izbjegli pojavu ove poruke, morate potpuno onemogućiti Excel zaštitu. Međutim, to možda nije uvijek ispravno i sigurno.
Mislim da ćete se složiti sa mnom da cijelo vrijeme otvaranjadatoteku i kopiranje koda korisnički definiranih funkcija iz nje ili pisanje naziva te datoteke u formuli nije najbolje rješenje. tako smo došli do trećeg načina.
Metoda 3. Stvorite datoteku dodatka programa Excel
Mislim da je najbolji način pohraniti često korištene prilagođene funkcije u datoteku dodatka programa Excel . Prednosti korištenja dodatka:
- Morate samo jednom povezati dodatak s Excelom. Nakon toga možete koristiti njegove postupke i funkcije u bilo kojoj datoteci na ovom računalu. Ne morate spremati svoje radne knjige u formate .xlsm i .xlsb jer izvorni kod neće biti pohranjen u njima već u datoteci dodatka.
- Zaštita makronaredbi više vas neće smetati jer dodaci se uvijek odnose na pouzdane izvore.
- Dodatak je zasebna datoteka. Lako ga je prenijeti s računala na računalo, podijeliti s kolegama.
Kasnije ćemo više govoriti o stvaranju i korištenju dodatka.
Korištenje dodataka dodaci za pohranu prilagođenih funkcija
Kako mogu stvoriti vlastiti dodatak? Prođimo kroz ovaj proces korak po korak.
Korak 1. Stvorite datoteku dodatka
Otvorite Microsoft Excel, izradite novu radnu knjigu i spremite je pod bilo kojim prikladnim imenom (na primjer, My_Functions) u obliku dodatka. Da biste to učinili, koristite izbornik Datoteka - Spremi kao ili tipku F12. Obavezno navedite vrstu datoteke Excel Add-in :
Vaš dodatak će imati nastavak .xlam.
Savjet. Imajte na umu daprema zadanim postavkama Excel sprema dodatke u C:\Users\[Vaše_ime]\AppData\Roaming\Microsoft\AddIns mapu. Preporučujem da prihvatite zadanu lokaciju. Ako želite, možete odrediti bilo koju drugu mapu. Ali onda, kada povezujete dodatak, morat ćete ručno pronaći i odrediti njegovu novu lokaciju. Ako ga spremite u zadanu mapu, ne morate tražiti dodatak na računalu. Excel će ga automatski ispisati.
Korak 2. Povežite datoteku dodatka
Sada dodatak koji smo izradili treba povezati s Excelom. Tada će se automatski učitati kada se program pokrene. Da biste to učinili, upotrijebite izbornik Datoteka - Mogućnosti - Dodaci . Provjerite je li odabrano Excel Add-Ins u polju Manage . Pritisnite gumb Idi na dnu prozora. U prozoru koji se pojavi označite naš dodatak My_Functions. Ako ga ne vidite na popisu, kliknite gumb Pregledaj i potražite lokaciju svoje datoteke dodatka.
Ako koristite dodatak za pohranu prilagođenih funkcija, slijedite jedno jednostavno pravilo. Ako prenosite radnu knjigu na druge osobe, svakako prenesite i kopiju dodatka koji sadrži željenu funkciju. Trebali bi ga povezati na isti način kao što ste vi sada učinili.
Korak 3. Dodajte prilagođene funkcije i makronaredbe u dodatak
Naš dodatak je povezan s Excelom, ali ne nema nikakvu funkcionalnostjoš. Da biste mu dodali nove UDF-ove, otvorite Visual Basic Editor pritiskom na Alt + F11. Zatim možete dodati nove module s VBA kodom kao što je opisano u mom vodiču za stvaranje UDF-ova.
Odaberite svoju datoteku dodatka ( My_Finctions.xlam ) u prozor VBAProject. Koristite izbornik Umetni - Modul za dodavanje prilagođenog modula. U njega trebate napisati prilagođene funkcije.
Možete ili ručno upisati kôd korisnički definirane funkcije ili ga kopirati odnekud.
To je sve. Sada ste izradili vlastiti dodatak, dodali ga u Excel i možete koristiti UDF u njemu. Ako želite koristiti više UDF-ova, samo napišite kod u modul dodatka u VBA uređivaču i spremite ga.
To je to za danas. Naučili smo kako koristiti korisnički definirane funkcije u vašoj radnoj knjizi. Zaista se nadamo da će vam ove smjernice biti korisne. Ako imate pitanja, napišite ih u komentarima na ovaj članak.