Egyéni függvények használata és tárolása az Excelben

  • Ossza Meg Ezt
Michael Brown

Ma folytatjuk az egyéni Excel függvények felfedezését. Mivel már tudod, hogyan hozhatsz létre UDF-eket (és remélem, kipróbáltad már az Excelben való alkalmazásukat is), ássunk egy kicsit mélyebbre, és tanuljuk meg, hogyan használhatod és tárolhatod a felhasználó által definiált függvényeket az Excelben.

Ezenkívül megmutatjuk, hogyan mentheti el könnyedén a függvényeket egy Excel add-in fájlba, hogy később néhány kattintással használhassa őket.

Szóval, a következőkről fogunk beszélni:

    Az UDF használatának különböző módjai az Excelben

    UDF-ek használata munkalapokban

    Miután meggyőződött arról, hogy az UDF-ek megfelelően működnek, használhatja őket Excel-képletekben vagy VBA-kódban.

    Az egyéni függvényeket ugyanúgy alkalmazhatja egy Excel-munkalapban, mint a hagyományos függvényeket. Írja például egy cellába az alábbi képletet:

    = GetMaxBetween(A1:A6,10,50)

    Az UDF a normál függvényekkel kombinálva is használható. Például szöveg hozzáadása a kiszámított maximális értékhez:

    = CONCATENATE("A 10 és 50 közötti maximális érték ", GetMaxBetween(A1: A6,10,50))

    Az eredményt az alábbi képernyőképen láthatja:

    Megtalálhatja azt a számot, amely egyszerre maximális és a 10 és 50 közötti tartományban van.

    Ellenőrizzünk egy másik képletet:

    = INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), a

    Az egyéni funkció GetMaxBetween ellenőrzi a B2:B9 tartományt, és megkeresi a 10 és 50 közötti maximális számot. Ezután az INDEX + MATCH segítségével megkapjuk a termék nevét, amely megfelel ennek a maximális értéknek:

    Amint láthatja, az egyéni függvények használata nem különbözik túlságosan a hagyományos Excel-funkcióktól.

    Ennek során ne feledje, hogy a felhasználó által definiált függvények csak értéket adhatnak vissza, de más műveletet nem végezhetnek. Olvasson többet a felhasználó által definiált függvények korlátairól.

    UDF használata VBA eljárásokban és függvényekben

    Az UDF-ek VBA-makrókban is használhatók. Az alábbiakban látható a makró kódja, amely az aktív cellát tartalmazó oszlopban a 10 és 50 közötti tartományban keresi a maximális értéket.

    Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range(Cells(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 With End Sub

    A makró kódja az egyéni függvényt tartalmazza

    GetMaxBetween(.Cells, 10, 50)

    Megkeresi a maximális értéket az aktív oszlopban. Ez az érték ekkor kiemelésre kerül. A makró eredményét az alábbi képernyőképen láthatja.

    Egy egyéni függvényt egy másik egyéni függvényen belül is használhatunk. A blogunkban korábban a számok szöveggé alakításának problémáját vizsgáltuk meg az alábbi egyéni függvény segítségével SpellNumber .

    Segítségével megkaphatjuk a tartományból a maximális értéket, és azonnal leírhatjuk szövegként.

    Ehhez létrehozunk egy új egyéni függvényt, amelyben a következő függvényeket használjuk GetMaxBetween és SpellNumber amelyek már ismerősek számunkra.

    Function SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End Function

    Mint látható, a GetMaxBetween függvény egy másik egyéni függvény argumentuma, SpellNumber Meghatározza a maximális értéket, ahogy azt már sokszor megtettük korábban. Ezt a számot ezután szöveggé alakítjuk.

    A fenti képernyőképen látható, hogy a SpellGetMaxBetween függvény megtalálja a 100 és 500 közötti maximális számot, majd szöveggé alakítja.

    UDF hívása más munkafüzetekből

    Ha UDF-et hozott létre a munkafüzetében, ez sajnos nem jelenti azt, hogy egyáltalán nem fog problémákkal szembesülni.

    Tapasztalatom szerint a legtöbb felhasználó előbb-utóbb létrehozza személyes makrók és egyéni függvények gyűjteményét az egyes folyamatok és számítások automatizálására. És itt merül fel a probléma - a Visual Basicben a felhasználó által definiált függvények kódját valahol tárolni kell, hogy később a munka során felhasználható legyen.

    Az egyéni függvény alkalmazásához az Excelben meg kell nyitnia azt a munkafüzetet, ahová elmentette. Ha nem így van, akkor a #NAME! hiba jelenik meg, amikor megpróbálja használni. Ez a hiba azt jelzi, hogy az Excel nem ismeri a képletben használni kívánt függvény nevét.

    Nézzük meg, hogy milyen módon használhatja a létrehozott egyéni függvényeket.

    Módszer 1. A munkafüzet nevének hozzáadása a függvényhez

    A függvény neve előtt megadhatja annak a munkafüzetnek a nevét, amelyben a függvény található. Például, ha egy egyéni függvényt mentett el a GetMaxBetween() nevű munkafüzetben My_Functions.xlsm , akkor a következő képletet kell megadni:

    = My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)

    2. módszer. Az összes UDF tárolása egy közös fájlban

    Mentse az összes egyéni függvényt egy speciális munkafüzetbe (pl, My_Functions.xlsm ), és szükség esetén másolja át a kívánt funkciót az aktuális munkafüzetbe.

    Minden egyes alkalommal, amikor új egyéni függvényt hoz létre, meg kell duplikálnia a kódját abban a munkafüzetben, amelyben használni fogja. Ezzel a módszerrel több kellemetlenség is felmerülhet:

    • Ha sok munkafájl van, és a funkcióra mindenhol szükség van, akkor a kódot minden könyvbe be kell másolni.
    • Ne feledje, hogy a munkafüzetet makrókat támogató formátumban (.xlsm vagy .xlsb) mentse el.
    • Egy ilyen fájl megnyitásakor a makrók elleni védelem minden alkalommal figyelmeztetést jelenít meg, amelyet meg kell erősíteni. Sok felhasználó megijed, amikor egy sárga sávos figyelmeztetést lát, amely a makrók engedélyezésére szólítja fel. Ahhoz, hogy ne lássa ezt az üzenetet, teljesen le kell tiltani az Excel védelmét. Ez azonban nem mindig helyes és biztonságos.

    Azt hiszem, egyetértesz velem abban, hogy minden alkalommal egy fájl megnyitása és a felhasználó által definiált függvények kódjának kimásolása belőle, vagy a fájl nevének beírása egy képletbe nem a legjobb megoldás. így jutottunk el a harmadik megoldáshoz.

    3. módszer. Excel add-in fájl létrehozása

    Úgy gondolom, hogy a legjobb megoldás a gyakran használt egyéni függvények tárolása egy Excel-bővítményfájlban. A bővítmény használatának előnyei:

    • A bővítményt csak egyszer kell csatlakoztatnia az Excelhez. Ezt követően az eljárásait és függvényeit a számítógépen lévő bármely fájlban használhatja. A munkafüzeteket nem kell .xlsm és .xlsb formátumban elmentenie, mivel a forráskód nem ezekben, hanem a bővítményfájlban lesz tárolva.
    • Többé nem zavarja a makrók védelme, mivel a bővítmények mindig megbízható forrásokra hivatkoznak.
    • A bővítmény egy különálló fájl. Könnyen átvihető számítógépről számítógépre, megosztható a kollégákkal.

    A bővítmény létrehozásáról és használatáról később még többet fogunk beszélni.

    Egyéni funkciók tárolására szolgáló bővítmények használata

    Hogyan hozhatok létre saját bővítményt? Vegyük végig ezt a folyamatot lépésről lépésre.

    1. lépés. Hozzuk létre a bővítményfájlt

    Nyissa meg a Microsoft Excel programot, hozzon létre egy új munkafüzetet, és mentse azt bármilyen megfelelő névvel (például My_Functions) add-in formátumban. Ehhez használja a menü Fájl - Mentés másként vagy az F12 billentyűvel. Ügyeljen arra, hogy adja meg a fájl típusát. Excel Add-in :

    A bővítmény .xlam kiterjesztésű lesz.

    Tipp: Vegye figyelembe, hogy az Excel alapértelmezés szerint a bővítményeket a C:\ Felhasználók\[Az Ön neve]\AppData\Roaming\Microsoft\AddIns mappába. Javaslom, hogy fogadja el az alapértelmezett helyet. Ha szeretné, megadhat bármilyen más mappát is. De akkor a bővítmény csatlakoztatásakor manuálisan meg kell keresnie és meg kell adnia az új helyét. Ha az alapértelmezett mappába menti, nem kell megkeresnie a bővítményt a számítógépén. Az Excel automatikusan listázza.

    2. lépés: Csatlakoztassa a bővítményfájlt

    Most az általunk létrehozott bővítményt csatlakoztatni kell az Excelhez. Ezután a program indításakor automatikusan betöltődik. Ehhez használjuk a menü Fájl - Beállítások - Kiegészítők Győződjön meg róla. Excel Add-Ins van kiválasztva a Kezelje a címet. mező. Kattintson a Go gombot az ablak alján. A megjelenő ablakban jelölje be a My_Functions nevű bővítményünket. Ha nem látja a listában, kattintson a Böngésszen a oldalon. gombot, és keresse meg a bővítményfájl helyét.

    Ha egy bővítményt használ az egyéni funkciók tárolására, van egy egyszerű szabály, amelyet be kell tartani. Ha a munkafüzetet átadja egy másik személynek, ügyeljen arra, hogy a bővítmény egy példányát is átadja, amely tartalmazza a kívánt funkciót. Ugyanúgy kell csatlakoztatniuk, mint ahogyan most is tették.

    3. lépés: Egyéni funkciók és makrók hozzáadása a bővítményhez

    Az add-inünk csatlakozik az Excelhez, de még nem rendelkezik semmilyen funkcióval. Új UDF-ek hozzáadásához nyissa meg a Visual Basic szerkesztőt az Alt + F11 billentyűkombinációval, majd új modulokat adhat hozzá VBA kóddal, ahogyan azt az UDF-ek létrehozása című bemutatómban leírtam.

    Válassza ki az add-in fájlját ( My_Finctions.xlam ) a VBAProject ablakban. Használja a Beszúrás - modul menüből egy egyéni modul hozzáadásához. Egyéni függvényeket kell beleírni.

    A felhasználó által definiált függvény kódját kézzel is beírhatja, vagy másolhatja valahonnan.

    Ennyi. Most már létrehozta saját kiegészítőjét, hozzáadta az Excelhez, és használhatja benne az UDF-et. Ha több UDF-et szeretne használni, csak írja meg a kódot a kiegészítő modulban a VBA-szerkesztőben, és mentse el.

    Ennyi volt mára. Megtanultuk, hogyan használjuk a felhasználó által definiált függvényeket a munkafüzetben. Nagyon reméljük, hogy hasznosnak találod ezeket az iránymutatásokat. Ha bármilyen kérdésed van, írd meg a cikkhez fűzött hozzászólásokban.

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.