Sadržaj
Danas ćemo nastaviti s istraživanjem prilagođenih Excel funkcija. Kako već znate kako da kreirate UDF-ove (a nadam se da ste i pokušali da ih primenite u svom Excel-u), hajde da kopamo malo dublje i naučimo kako da koristimo i pohranjujemo korisnički definisane funkcije u Excel-u.
Štaviše, pokazat ćemo vam kako lako spremiti svoje funkcije u Excel datoteku dodatka da biste ih kasnije koristili u nekoliko klikova.
Dakle, evo o čemu ćemo razgovarati:
Različiti načini korištenja UDF-a u Excel-u
Korišćenje UDF-ova u radnim listovima
Kada provjerite da vaši UDF-ovi rade ispravno, možete ih koristiti u Excel-u 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 upišite u ćeliju formulu ispod:
= GetMaxBetween(A1:A6,10,50)
UDF se može koristiti u kombinaciji s regularnim funkcijama. Na primjer, dodajte tekst izračunatoj maksimalnoj vrijednosti:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Rezultat možete vidjeti na slici ispod:
Vi može pronaći broj koji je i maksimalan 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 maksimalni broj između 10 i 50. Zatim, koristeći INDEX + MATCH, dobijamo naziv proizvoda koji odgovara ovoj maksimalnoj vrijednosti:
Kao što vidite, upotreba prilagođenih funkcija se ne razlikuje 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šćenje UDF-a u VBA procedurama i funkcijama
UDF-ovi se također mogu koristiti u VBA makroima. Ispod možete vidjeti makro kod koji traži maksimalnu vrijednost u rasponu od 10 do 50 u koloni koja sadrži aktivnu ćeliju.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Ćelije(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Ćelije(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.0,Cells) = i.Cells. Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubMakro kod sadrži prilagođenu funkciju
GetMaxBetween(.Cells, 10, 50)
To pronalazi maksimalnu vrijednost u aktivnoj koloni. Ova vrijednost će tada biti istaknuta. Rezultat makronaredbe možete vidjeti na slici ispod.
Prilagođena funkcija se također može koristiti unutar druge prilagođene funkcije. Ranije na našem blogu smo se bavili problemom pretvaranja broja u tekst pomoću prilagođene funkcije pod nazivom SpellNumber .
Uz njenu pomoć možemo dobiti maksimalnu vrijednost iz raspona i odmah zapišite to kao tekst.
Da bismo to učinili, kreirat ć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(GetMaxNumCells,Max.End) FunkcijaKao što možete vidjeti, funkcija GetMaxBetween je argument drugoj prilagođenoj funkciji, SpellNumber . Definira maksimalnu vrijednost, kao što smo radili mnogo puta ranije. Ovaj broj se zatim pretvara u tekst.
Na gornjoj snimci ekrana možete vidjeti kako funkcija SpellGetMaxBetween pronalazi maksimalni broj između 100 i 500 i zatim ga konvertuje u tekst.
Pozivanje UDF-a iz drugih radnih knjiga
Ako ste kreirali UDF u svojoj radnoj svesci, to, nažalost, ne znači da nećete imati nikakvih problema.
Po mom iskustvu, većina korisnika prije ili kasnije kreira svoju ličnu kolekciju makroa i prilagođenih funkcija za automatizaciju pojedinačnih procesa i proračuna. I tu nastaje problem - kod korisnički definiranih funkcija u Visual Basicu mora biti pohranjen negdje da bi se kasnije koristio u radu.
Da biste primijenili prilagođenu funkciju, radna knjiga u koju ste je sačuvali mora biti otvorena u vašem Excelu. Ako nije, dobit ćete #NAME! greška prilikom pokušaja korištenja. Ova greška ukazuje da Excel ne zna ime funkcije koju želite koristiti u formuli.
Hajde da pogledamo načine ukoju možete koristiti prilagođene funkcije koje kreirate.
Metoda 1. Dodajte naziv radne knjige funkciji
Možete odrediti 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. Spremite 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 kreirate novu prilagođenu funkciju, trebate duplicirati njen 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 svuda potrebna, onda će kod morati biti kopiran u svaku knjigu.
- Ne zaboravite da sačuvate radnu svesku u formatu sa omogućenim makroima (.xlsm ili .xlsb).
- Prilikom otvaranja takve datoteke, zaštita od makroa će svaki put prikazati upozorenje, koje se mora potvrditi. Mnogi korisnici se uplaše kada vide žutu traku upozorenja koja od njih traži da omoguće makroe. Da ne biste vidjeli ovu poruku, morate potpuno onemogućiti Excel zaštitu. Međutim, ovo možda nije uvijek ispravno i sigurno.
Mislim da ćete se složiti samnom da cijelo vrijeme otvaranjadatoteku i kopiranje koda korisnički definiranih funkcija iz nje ili upisivanje imena ove datoteke u formulu nije najbolje rješenje. tako smo došli do trećeg načina.
Metoda 3. Kreirajte Excel datoteku dodatka
Mislim da je najbolji način da pohranite često korištene prilagođene funkcije u Excel datoteku dodatka . Prednosti korištenja programskog dodatka:
- Trebate samo jednom povezati dodatak s Excelom. Nakon toga, možete koristiti njegove procedure i funkcije u bilo kojoj datoteci na ovom računaru. Ne morate da spremate svoje radne sveske u .xlsm i .xlsb formatima jer izvorni kod neće biti pohranjen u njima već u datoteci dodataka.
- Više vam neće smetati zaštita makroa jer dodaci se uvijek odnose na pouzdane izvore.
- Dodatak je zasebna datoteka. Lako ga je prenijeti s računara na računar, podijeliti sa kolegama.
O kreiranju i korištenju dodatka ćemo više razgovarati kasnije.
Korišćenje add- ins za pohranjivanje prilagođenih funkcija
Kako da kreiram svoj vlastiti dodatak? Idemo kroz ovaj proces korak po korak.
Korak 1. Kreirajte datoteku dodatka
Otvorite Microsoft Excel, kreirajte novu radnu knjigu i spremite je pod bilo kojim odgovarajućim imenom (na primjer, My_Functions) u formatu dodataka. Da biste to uradili, koristite meni Datoteka - Sačuvaj kao ili taster F12. Obavezno navedite tip datoteke Excel dodatak :
Vaš dodatak će imati ekstenziju .xlam.
Savjet. Imajte na umu daExcel podrazumevano pohranjuje dodatke u fasciklu C:\Users\[Vaše_ime]\AppData\Roaming\Microsoft\AddIns . Preporučujem da prihvatite zadanu lokaciju. Ako želite, možete odrediti bilo koji drugi folder. Ali tada, kada povezujete dodatak, morat ćete ručno pronaći i odrediti njegovu novu lokaciju. Ako ga sačuvate u podrazumevanoj fascikli, ne morate da tražite dodatak na svom računaru. Excel će ga automatski prikazati.
Korak 2. Povežite datoteku dodatka
Sada programski dodatak koji smo kreirali treba biti povezan s Excelom. Zatim će se automatski učitati kada se program pokrene. Da biste to učinili, koristite meni Datoteka - Opcije - Dodaci . Provjerite je li Excel dodaci odabrani u polju Upravljanje . Kliknite na dugme Idi na dnu prozora. U prozoru koji se pojavi označite naš dodatak My_Functions. Ako ga ne vidite na listi, kliknite na dugme Pregledaj i dođite do lokacije vašeg dodatka.
Ako ako koristite dodatak za pohranjivanje prilagođenih funkcija, postoji jedno jednostavno pravilo koje treba slijediti. Ako prenosite radnu svesku na druge osobe, obavezno prenesite i kopiju dodatka koji sadrži željenu funkcionalnost. Trebali bi ga povezati na isti način kao što ste sada učinili.
Korak 3. Dodajte prilagođene funkcije i makroe u programski dodatak
Naš dodatak je povezan s Excelom, ali nije nemaju nikakvu funkcionalnostjoš. Da biste mu dodali nove UDF-ove, otvorite Visual Basic Editor pritiskom na Alt + F11. Zatim možete dodati nove module sa VBA kodom kao što je opisano u mom vodiču Kreiraj UDFs.
Odaberite svoj dodatak ( My_Finctions.xlam ) u prozor VBAProject. Koristite Insert - Module meni da dodate prilagođeni modul. Morate upisati prilagođene funkcije u njega.
Možete ili ručno upisati kod korisnički definirane funkcije ili ga kopirati odnekud.
To je sve. Sada ste kreirali svoj vlastiti dodatak, dodali ga u Excel i možete koristiti UDF u njemu. Ako želite da koristite više UDF-ova, samo napišite kod u modulu dodataka u VBA editoru i sačuvajte 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 od pomoći. Ako imate pitanja, pišite u komentarima na ovaj članak.