Foardielen en neidielen fan oanpaste funksjes yn Excel

  • Diel Dit
Michael Brown

Wy geane troch mei de searje tutorials oer brûker definieare funksjes. Yn ús eardere artikels hawwe wy kunde makke mei oanpaste funksjes en learden hoe't jo se oanmeitsje en brûke. Yn dizze hantlieding sille wy nei de spesifikaasjes fan it brûken fan dizze funksjes sjen en de ferskillen sjen tusken UDF's en VBA-makro's.

Yn dizze tutorial sille wy it folgjende leare:

    Wy hoopje dat dit artikel jo kennis fan UDF in stimulearje sil en jo helpt se noch effektiver te brûken yn jo Excel-wurkboeken.

    Is UDF en Macro itselde ding?

    Sawol troch brûkers definieare funksjes as VBA Makro's wurde makke mei de VBA-bewurker. Wat is it ferskil tusken harren en wat te jaan foarkar oan?

    It wichtichste ferskil is dat de funksje fiert de berekkening, en de makro fiert wat aksje. In troch brûkers definieare funksje, lykas in gewoane Excel-funksje, moat yn in sel skreaun wurde. As gefolch fan syn útfiering jout de sel wat wearde werom. Tagelyk is it ûnmooglik om de wearden fan oare sellen te feroarjen, lykas guon eigenskippen fan 'e hjoeddeistige sel (benammen opmaak). Jo kinne lykwols in oanpaste funksje brûke yn formules foar betingsten opmaak.

    UDF- en VBA-makro wurkje op ferskate manieren. Bygelyks, as jo in UDF meitsje yn 'e Visual Basic Editor, begjinne jo mei in ferklearring Funksje en einigje mei in Endfunksje . As jo ​​opnimme in makro, Jo begjinne mei instatement Sub en einigje mei in End Sub.

    Net alle Visual Basic-operators kinne brûkt wurde om UDF's te meitsjen. Om dizze reden is in makro in mear alsidige oplossing.

    In makro fereasket de brûker gjin arguminten troch te jaan (ek kin gjin arguminten akseptearje), yn tsjinstelling ta in troch de brûker definieare funksje.

    It punt is dat guon kommando's fan makro's seladressen of opmaakeleminten brûke kinne (bygelyks kleur). As jo ​​sellen ferpleatse, rigen en kolommen tafoegje of fuortsmite, feroarje it formaat fan sellen, dan kinne jo jo makro's maklik "brekke". Dit is benammen mooglik as jo jo bestân diele mei kollega's dy't net witte hoe't jo makro's wurkje.

    Jo hawwe bygelyks in bestân mei in perfekt wurkjende makro. Dizze formule berekkent it persintaazje fan sel A1 oant A4. Makro feroaret de kleur fan dizze sellen nei giel. In persintaazje opmaak is ynsteld yn de aktive sel.

    As jo ​​of in oar beslute om in nije rige yn te foegjen, sil de makro fierder sykje nei de wearde yn 'e A4-sel ( de 4,1-parameter yn jo UDF), mislearje en jout in flater werom:

    Yn dit gefal is de flater bard troch divyzje troch nul (gjin wearde yn in nij tafoege rigel). Yn it gefal dat de makro útfiert, litte wy sizze, summaasje, dan krije jo gewoan in ferkeard resultaat. Mar jo sille it net witte.

    Yn tsjinstelling ta makro's kinne troch de brûker definieare funksjes sa'n ûnnoflike situaasje net feroarsaakje.

    Hjirûnder sjogge jo de prestaasjes fandeselde berekkeningen mei help fan in UDF. Hjir kinne jo oeral yn it wurkblêd ynfiersellen oantsjutte en jo sille gjin ûnferwachte problemen tsjinkomme by it feroarjen.

    Ik skreau de folgjende formule yn C3:

    =UDF_vs_Macro(A1,A4)

    Dan haw ik in lege rige ynfoege, en de formule feroare lykas jo kinne sjen yn 'e skermprint hjirboppe.

    No kinne wy ​​in ynfiersel of in sel mei in funksje oeral ferpleatse. It resultaat sil altyd korrekt wêze.

    In ekstra foardiel fan it brûken fan UDF's is dat se automatysk bywurkje as de wearde yn 'e ynfiersel feroaret. By it brûken fan makro's moatte jo der altyd foar soargje dat alle gegevens bywurke binne.

    Hâld dit foarbyld yn gedachten, ik brûk it leafst UDF's wêr't it kin en brûk makro's allinich foar oare net-berekkeningsaktiviteiten.

    Beheinings en neidielen fan it brûken fan UDF

    Ik haw de foardielen fan UDF hjirboppe al neamd. Lang ferhaal koart, it kin berekkeningen útfiere dy't net mooglik binne mei standert Excel-funksjes. Derneist kin it lange en komplekse formules opslaan en brûke, en meitsje se yn ien funksje. En jo hoege net hieltyd wer yngewikkelde formules te skriuwen.

    Litte wy no yn mear detail prate oer de tekoartkommingen fan de UDF:

    • UDF's oanmeitsje fereasket it brûken fan VBA. Der is gjin wei om it hinne. Dit betsjut dat de brûker de UDF net op deselde manier kin opnimme as in Excel-makro. Jo moatte sels de UDF oanmeitsje. Jo kinne lykwols kopiearje enplak dielen fan 'e earder opnommen makrokoade yn jo funksje. Jo moatte gewoan bewust wêze fan 'e beheiningen fan oanpaste funksjes.
    • In oar nadeel fan UDF is dat it, lykas elke oare Excel-funksje, allinich in inkele wearde of in array fan wearden weromjaan kin yn in sel. It docht gewoan berekkeningen, neat mear.
    • As jo ​​jo wurkboek diele wolle mei jo kollega's, wês dan wis dat jo jo UDF's yn itselde bestân bewarje. Oars wurkje jo oanpaste funksjes der net foar.
    • Aanpaste funksjes makke mei de VBA-bewurker binne stadiger as gewoane funksjes. Dit is benammen te merken yn grutte tabellen. Spitigernôch is VBA oant no ta in heul trage programmeartaal. Dêrom, as jo in protte gegevens hawwe, besykje dan as it mooglik is standertfunksjes te brûken, of meitsje UDF's mei de LAMBDA-funksje.

    Beheiningen foar oanpaste funksjes:

    • UDF's binne ûntworpen om berekkeningen út te fieren en in wearde werom te jaan. Se kinne net brûkt wurde yn plak fan makro's.
    • Se kinne de ynhâld fan oare sellen net feroarje (allinne de aktive sel).
    • Funksjenammen moatte bepaalde regels folgje. Jo kinne bygelyks gjin namme brûke dy't oerienkomt mei in eigen Excel-funksjenamme of in seladres, lykas AB123.
    • Jo oanpaste funksje kin gjin spaasjes yn 'e namme befetsje, mar it kin it underscore-teken befetsje. De foarkar metoade is lykwols om haadletters te brûken oan it begjin fan elke nijewurd (bygelyks GetMaxBetween).
    • In UDF kin gjin sellen kopiearje en plakke nei oare gebieten fan it wurkblêd.
    • Se kinne it aktive wurkblêd net feroarje.
    • UDF's kinne' t feroarje de opmaak yn de aktive sel. As jo ​​de opmaak fan in sel feroarje wolle by it werjaan fan ferskillende wearden, moatte jo gebrûk meitsje fan betingsten opmaak.
    • Se kinne gjin ekstra boeken iepenje.
    • Se kinne net brûkt wurde om makro's út te fieren mei Application.OnTime .
    • In troch de brûker definiearre funksje kin net oanmakke wurde mei help fan de makro recorder.
    • Funksjes net ferskine yn de Developer & GT; Macro's -dialooch.
    • Jo funksjes sille allinich yn it dialoochfinster ferskine ( Foegje > Funksje ) en yn 'e list mei funksjes allinich as se as Iepenbier<7 ferklearre wurde> (dit is de standert, útsein as oars oanjûn).
    • Alle funksjes ferklearre as Private sille net ferskine yn 'e list mei funksjes.

    In frij trage operaasje , lykas guon beheiningen yn gebrûk, kinne jo tinke: "Wat is it gebrûk fan dizze oanpaste funksjes?"

    Se kinne fan pas komme, en dwaan as wy rekken hâlde mei de beheiningen dy't har oplein binne. As jo ​​leare hoe't jo UDF's goed oanmeitsje en brûke, kinne jo jo bibleteek fan funksjes skriuwe. Dit sil jo fermogen om te wurkjen mei gegevens yn Excel sterk útwreidzje.

    Wat my oanbelanget binne oanpaste funksjes geweldige tiidbesparring. En hoe sit it mei dy? Hawwe jo al besocht jo eigen UDF te meitsjen? Fynsto it leukbetter as de basis Excel funksjes? Litte wy it besprekke yn 'e opmerkings :)

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.