Kostir og gallar sérsniðinna aðgerða í Excel

  • Deildu Þessu
Michael Brown

Við höldum áfram röð námskeiða um notendaskilgreindar aðgerðir. Í fyrri greinum okkar kynntumst við sérsniðnum aðgerðum og lærðum hvernig á að búa til og nota þær. Í þessari handbók munum við skoða sérkenni þess að nota þessar aðgerðir og sjá muninn á UDF og VBA fjölva.

Í þessari kennslu munum við læra eftirfarandi:

    Við vonum að þessi grein muni auka þekkingu þína á UDF og hjálpa þér að nota þær enn skilvirkari í Excel vinnubókunum þínum.

    Er UDF og Macro það sama?

    Bæði notendaskilgreindar aðgerðir og VBA Fjölvi eru búin til með VBA ritlinum. Hver er munurinn á þeim og hverju á að gefa val?

    Mikilvægasti munurinn er sá að fallið framkvæmir útreikninginn og fjölvi framkvæmir einhverja aðgerð. Notendaskilgreint fall, eins og venjulegt Excel fall, verður að skrifa í reit. Sem afleiðing af framkvæmd hennar skilar fruman einhverju gildi. Á sama tíma er ómögulegt að breyta gildum annarra frumna, svo og sumum eiginleikum núverandi reits (sérstaklega snið). Hins vegar er hægt að nota sérsniðna aðgerð í skilyrtum formúlum.

    UDF og VBA fjölvi virka á mismunandi hátt. Til dæmis, þegar þú býrð til UDF í Visual Basic Editor byrjarðu á setningu Function og endar á End Function . Þegar þú tekur upp macro byrjarðu á asetning Sub og enda með End Sub.

    Ekki er hægt að nota alla Visual Basic rekstraraðila til að búa til UDF. Af þessum sökum er fjölvi fjölhæfari lausn.

    Fró þarf ekki að notandinn sendi nein rök (né getur hann samþykkt nein rök), ólíkt notendaskilgreindu falli.

    Málið er að sumar skipanir á fjölvi geta notað frumuvistföng eða sniðþætti (til dæmis lit). Ef þú færir frumur, bætir við eða fjarlægir línur og dálka, breytir sniði frumna, þá geturðu auðveldlega „brotið“ fjölva. Þetta er sérstaklega mögulegt ef þú deilir skránni þinni með samstarfsmönnum sem vita ekki hvernig fjölvi virka.

    Til dæmis ertu með skrá með fullkomlega virka fjölva. Þessi formúla reiknar út hlutfall reits A1 til A4. Fjölvi breytir lit þessara frumna í gult. Prósentusnið er stillt í virka reitnum.

    Ef þú eða einhver annar ákveður að setja inn nýja línu mun fjölvi halda áfram að leita að gildinu í A4 reitnum ( 4,1 færibreytan í UDF þínum), mistakast og skila villu:

    Í þessu tilviki kom villan upp vegna deilingar með núll (ekkert gildi í nýlega bættri röð). Ef fjölvi skilar, segjum við samantekt, þá færðu einfaldlega ranga niðurstöðu. En þú munt ekki vita af því.

    Öfugt við fjölva, geta notendaskilgreindar aðgerðir ekki valdið svo óþægilegum aðstæðum.

    Hér fyrir neðan sérðu árangur afsömu útreikninga með UDF. Hér getur þú tilgreint inntaksfrumur hvar sem er á vinnublaðinu og þú munt ekki standa frammi fyrir neinum óvæntum vandamálum þegar þú breytir því.

    Ég skrifaði eftirfarandi formúlu í C3:

    =UDF_vs_Macro(A1,A4)

    Svo setti ég inn auða línu og formúlan breyttist eins og þú sérð á skjáskotinu hér að ofan.

    Nú getum við fært inntaksreit eða reit með fall hvert sem er. Niðurstaðan verður alltaf rétt.

    Aukalegur ávinningur við að nota UDF er að þau uppfærast sjálfkrafa þegar gildið í inntaksreitnum breytist. Þegar þú notar fjölva verður þú alltaf að tryggja að öll gögn séu uppfærð.

    Með þetta dæmi í huga vil ég frekar nota UDF þar sem mögulegt er og nota fjölvi eingöngu fyrir aðra starfsemi sem ekki er útreikningur.

    Takmarkanir og gallar þess að nota UDF

    Ég hef þegar nefnt kosti UDF hér að ofan. Löng saga stutt, það getur framkvæmt útreikninga sem eru ekki mögulegir með venjulegum Excel aðgerðum. Að auki getur það vistað og notað langar og flóknar formúlur og breytt þeim í eina aðgerð. Og þú þarft ekki að skrifa flóknar formúlur aftur og aftur.

    Nú skulum við tala nánar um galla UDF:

    • Að búa til UDF þarf að nota VBA. Það er engin leið í kringum það. Þetta þýðir að notandinn getur ekki skráð UDF á sama hátt og Excel fjölvi. Þú verður að búa til UDF sjálfur. Hins vegar getur þú afritað oglímdu hluta af áður skráðum makrókóða inn í aðgerðina þína. Þú þarft bara að vera meðvitaður um takmarkanir sérsniðinna aðgerða.
    • Annar galli við UDF er að eins og hver önnur Excel aðgerð getur hún aðeins skilað einu gildi eða fjölda gilda inn í reit. Það framkvæmir einfaldlega útreikninga, ekkert annað.
    • Ef þú vilt deila vinnubókinni þinni með samstarfsfólki þínu, vertu viss um að vista UDF í sömu skránni. Annars virka sérsniðnar aðgerðir þínar ekki fyrir þær.
    • Sérsniðnar aðgerðir sem búnar eru til með VBA ritlinum eru hægari en venjulegar aðgerðir. Þetta er sérstaklega áberandi í stórum borðum. Því miður er VBA mjög hægt forritunarmál enn sem komið er. Þess vegna, ef þú ert með mikið af gögnum, reyndu þá að nota staðlaðar aðgerðir þegar mögulegt er, eða búðu til UDF með því að nota LAMBDA aðgerðina.

    Takmarkanir á sérsniðnum aðgerðum:

    • UDF eru hannað til að framkvæma útreikninga og skila gildi. Ekki er hægt að nota þau í stað fjölva.
    • Þeir geta ekki breytt innihaldi neinna annarra reita (aðeins virka reitinn).
    • Nöfn virka verða að fylgja ákveðnum reglum. Til dæmis er ekki hægt að nota nafn sem samsvarar innfæddu Excel fallheiti eða hólfsfangi, eins og AB123.
    • Sérsniðna aðgerðin þín getur ekki innihaldið bil í nafninu, en hún getur innihaldið undirstrik. Hins vegar er æskilegasta aðferðin að nota hástafi í upphafi hvers nýsorð (til dæmis GetMaxBetween).
    • UDF getur ekki afritað og límt frumur á önnur svæði vinnublaðsins.
    • Þeir geta ekki breytt virka vinnublaðinu.
    • UDFs geta' t breyta sniðinu í virka hólfinu. Ef þú vilt breyta sniði hólfs þegar þú sýnir mismunandi gildi, ættir þú að nota skilyrt snið.
    • Þeir geta ekki opnað viðbótarbækur.
    • Þau er ekki hægt að nota til að keyra fjölva með Application.OnTime .
    • Ekki er hægt að búa til notendaskilgreinda aðgerð með því að nota fjölviupptökutækið.
    • Aðgerðir birtast ekki í Þróaranum > Fjölva valmynd.
    • Aðgerðir þínar munu birtast í svarglugganum ( Setja inn > aðgerð ) og í listanum yfir aðgerðir aðeins ef þær eru lýstar sem Opinber (þetta er sjálfgefið, nema annað sé tekið fram).
    • Allar aðgerðir sem lýst er yfir sem Private munu ekki birtast á eiginleikalistanum.

    Framleiðis hæg aðgerð , auk nokkurra takmarkana á notkun, gætu fengið þig til að hugsa: „Hver ​​er notin af þessum sérsniðnu aðgerðum?“

    Þær geta komið sér vel, og gera það ef við erum meðvituð um þær takmarkanir sem þær eru lagðar á. Ef þú lærir hvernig á að búa til og nota UDFs á réttan hátt geturðu skrifað aðgerðasafnið þitt. Þetta mun auka mjög getu þína til að vinna með gögn í Excel.

    Hvað mig varðar eru sérsniðnar aðgerðir mikill tímasparnaður. Og hvað með þig? Hefur þú þegar prófað að búa til þinn eigin UDF? Líkaði þér þaðbetri en grunn Excel aðgerðir? Við skulum ræða það í athugasemdum :)

    Michael Brown er hollur tækniáhugamaður með ástríðu fyrir því að einfalda flókna ferla með hugbúnaðarverkfærum. Með meira en áratug af reynslu í tækniiðnaðinum hefur hann aukið færni sína í Microsoft Excel og Outlook, sem og Google Sheets og Docs. Blogg Michael er tileinkað því að deila þekkingu sinni og sérfræðiþekkingu með öðrum, veita auðveld ráð og leiðbeiningar til að bæta framleiðni og skilvirkni. Hvort sem þú ert vanur fagmaður eða byrjandi, þá býður blogg Michaels upp á dýrmæta innsýn og hagnýt ráð til að fá sem mest út úr þessum nauðsynlegu hugbúnaðarverkfærum.