Faida na hasara za kazi maalum katika Excel

  • Shiriki Hii
Michael Brown

Tunaendelea na mfululizo wa mafunzo kuhusu vipengele vilivyobainishwa na mtumiaji. Katika nakala zetu zilizopita, tulifahamiana na vitendaji maalum na tukajifunza jinsi ya kuziunda na kuzitumia. Katika mwongozo huu tutaangalia maalum ya kutumia vipengele hivi na kuona tofauti kati ya UDFs na VBA macros.

Katika somo hili, tutajifunza yafuatayo:

    Tunatumai makala haya yataongeza ujuzi wako wa UDF na kukusaidia kuzitumia kwa ufanisi zaidi katika vitabu vyako vya kazi vya Excel.

    Je, UDF na Macro ni kitu kimoja?

    Vitendaji vilivyoainishwa na mtumiaji na VBA vyote viwili. macros huundwa kwa kutumia mhariri wa VBA. Je! ni tofauti gani kati yao na nini cha kutoa upendeleo?

    Tofauti muhimu zaidi ni kwamba kazi hufanya hesabu, na macro hufanya hatua fulani. Kitendakazi kilichobainishwa na mtumiaji, kama kitendakazi cha kawaida cha Excel, lazima kiandikwe kwenye kisanduku. Kama matokeo ya utekelezaji wake, seli hurejesha thamani fulani. Wakati huo huo, haiwezekani kubadilisha maadili ya seli nyingine, pamoja na baadhi ya mali ya seli ya sasa (haswa, fomati). Hata hivyo, unaweza kutumia chaguo maalum la kukokotoa katika fomula za uumbizaji masharti.

    UDF na VBA hufanya kazi kwa njia tofauti. Kwa mfano, unapounda UDF katika Kihariri cha Visual Basic, unaanza na taarifa Kazi na kuishia na Kamilisha Kazi . Unaporekodi jumla, unaanza na astatement Sub na imalizie kwa Mwisho Ndogo.

    Sio waendeshaji wote wa Visual Basic wanaweza kutumika kuunda UDF. Kwa sababu hii, jumla ni suluhu inayotumika zaidi.

    Makro haihitaji mtumiaji kupitisha hoja zozote (wala haiwezi kukubali hoja zozote), tofauti na chaguo la kukokotoa lililofafanuliwa na mtumiaji.

    Hoja ni kwamba baadhi ya amri za macros zinaweza kutumia anwani za seli au vipengele vya uumbizaji (kwa mfano, rangi). Ikiwa unahamisha seli, ongeza au uondoe safu na safu, ubadilishe muundo wa seli, basi unaweza "kuvunja" macros yako kwa urahisi. Hili linawezekana hasa ikiwa utashiriki faili yako na wenzako ambao hawajui jinsi makro yako hufanya kazi.

    Kwa mfano, una faili iliyo na makro inayofanya kazi kikamilifu. Fomula hii hukokotoa asilimia ya seli A1 hadi A4. Macro hubadilisha rangi ya seli hizi kuwa njano. Umbizo la asilimia limewekwa katika kisanduku amilifu.

    Ikiwa wewe au mtu mwingine ataamua kuingiza safu mlalo mpya, jumla itaendelea kutafuta thamani katika kisanduku cha A4 ( kigezo cha 4,1 katika UDF yako), imeshindwa na kurudisha hitilafu:

    Katika hali hii, hitilafu ilitokea kwa sababu ya mgawanyiko kwa sifuri (hakuna thamani katika toleo jipya lililoongezwa. safu). Ikiwa jumla itafanya, wacha tuseme, muhtasari, basi utapata matokeo yasiyofaa. Lakini hutajua kuihusu.

    Kinyume na macros, vitendaji vilivyobainishwa na mtumiaji haviwezi kusababisha hali hiyo isiyofurahisha.

    Hapa chini unaona utendakazi wamahesabu sawa kwa kutumia UDF. Hapa unaweza kubainisha visanduku vya ingizo popote kwenye lahakazi na hutakabiliana na matatizo yoyote usiyotarajia unapoibadilisha.

    Niliandika fomula ifuatayo katika C3:

    =UDF_vs_Macro(A1,A4)

    Kisha nikaingiza safu mlalo tupu, na fomula ikabadilika kama unavyoona kwenye picha ya skrini iliyo hapo juu.

    Sasa tunaweza kuhamisha kisanduku cha ingizo au kisanduku chenye chaguo za kukokotoa popote. Matokeo yatakuwa sahihi kila wakati.

    Faida ya ziada ya kutumia UDF ni kwamba husasisha kiotomatiki thamani katika kisanduku cha ingizo inapobadilika. Unapotumia makro, lazima uhakikishe kuwa data yote imesasishwa kila wakati.

    Nikikumbuka mfano huu, ningependelea kutumia UDF popote inapowezekana na nitumie makro kwa shughuli nyingine zisizo za kukokotoa pekee.

    Mapungufu na hasara za kutumia UDF

    Tayari nimetaja faida za UDF hapo juu. Hadithi ndefu fupi, inaweza kufanya hesabu ambazo haziwezekani kwa vitendaji vya kawaida vya Excel. Kwa kuongeza, inaweza kuokoa na kutumia fomula ndefu na ngumu, kuzigeuza kuwa kazi moja. Na hutalazimika kuandika fomula ngumu tena na tena.

    Sasa hebu tuzungumze kwa undani zaidi kuhusu mapungufu ya UDF:

    • Kuunda UDF kunahitaji matumizi ya VBA. Hakuna njia ya kuizunguka. Hii ina maana kwamba mtumiaji hawezi kurekodi UDF kwa njia sawa na Excel macro. Lazima uunde UDF mwenyewe. Hata hivyo, unaweza kunakili nabandika sehemu za msimbo mkuu uliorekodiwa hapo awali kwenye kitendakazi chako. Unahitaji tu kufahamu vikwazo vya utendakazi maalum.
    • Upungufu mwingine wa UDF ni kwamba kama kitendakazi kingine chochote cha Excel inaweza tu kurudisha thamani moja au safu ya thamani kwenye kisanduku. Hufanya mahesabu kwa urahisi, hakuna zaidi.
    • Ikiwa unataka kushiriki kitabu chako cha kazi na wenzako, hakikisha umehifadhi UDF zako katika faili sawa. Vinginevyo, vipengele vyako maalum vya kukokotoa havitafanya kazi kwao.
    • Vitendaji maalum vilivyoundwa na kihariri cha VBA ni polepole kuliko vitendakazi vya kawaida. Hii inaonekana hasa katika meza kubwa. Kwa bahati mbaya, VBA ni lugha ya polepole sana ya programu hadi sasa. Kwa hivyo, ikiwa una data nyingi, jaribu kutumia vitendaji vya kawaida kila inapowezekana, au unda UDF kwa kutumia kitendakazi cha LAMBDA.

    Mapungufu ya Utendaji Maalum:

    • UDFs ni iliyoundwa kufanya hesabu na kurudisha thamani. Haziwezi kutumika badala ya makro.
    • Haziwezi kubadilisha maudhui ya seli nyingine zozote (seli amilifu pekee).
    • Majina ya kazi lazima yafuate sheria fulani. Kwa mfano, huwezi kutumia jina linalolingana na jina la chaguo la kukokotoa la asili la Excel au anwani ya seli, kama vile AB123.
    • Kitendaji chako maalum hakiwezi kuwa na nafasi katika jina, lakini kinaweza kujumuisha herufi ya chini. Walakini, njia inayopendekezwa ni kutumia herufi kubwa mwanzoni mwa kila mpyaneno (kwa mfano, GetMaxBetween).
    • UDF haiwezi kunakili na kubandika visanduku kwenye maeneo mengine ya lahakazi.
    • Haziwezi kubadilisha lahakazi inayotumika.
    • UDF zinaweza' t badilisha umbizo katika seli inayotumika. Ikiwa ungependa kubadilisha umbizo la kisanduku unapoonyesha thamani tofauti, unapaswa kutumia umbizo la masharti.
    • Haziwezi kufungua vitabu vya ziada.
    • Haziwezi kutumika kuendesha makro kwa kutumia Application.OnTime. .
    • Kitendaji kilichobainishwa na mtumiaji hakiwezi kuundwa kwa kutumia kinasa sauti.
    • Vitendaji havionekani katika Msanidi > Macros dialog.
    • Vitendaji vyako vitaonekana kwenye kisanduku cha mazungumzo ( Ingiza > Kazi ) na katika orodha ya vitendakazi iwapo tu zitatangazwa kuwa Hadharani (hii ndiyo chaguomsingi, isipokuwa iwe imebainishwa vinginevyo).
    • Vitendaji vyovyote vilivyotangazwa kuwa Faragha havitaonekana katika orodha ya vipengele.

    Operesheni ya polepole kabisa. , pamoja na baadhi ya vikwazo vinavyotumika, vinaweza kukufanya ufikirie: "Ni nini matumizi ya vipengele hivi maalum?"

    Zinaweza kuja kwa manufaa, na kufanya ikiwa tunazingatia vikwazo vilivyowekwa kwao. Ukijifunza jinsi ya kuunda na kutumia UDF vizuri, unaweza kuandika maktaba yako ya vitendaji. Hii itapanua sana uwezo wako wa kufanya kazi na data katika Excel.

    Mimi, chaguo za kukokotoa maalum ni viokoa muda vyema. Na wewe je? Je, tayari umejaribu kuunda UDF yako mwenyewe? Uliipendabora kuliko kazi za msingi za Excel? Tuijadili kwenye Maoni :)

    Michael Brown ni mpenda teknolojia aliyejitolea na mwenye shauku ya kurahisisha michakato changamano kwa kutumia zana za programu. Akiwa na uzoefu wa zaidi ya muongo mmoja katika tasnia ya teknolojia, ameboresha ujuzi wake katika Microsoft Excel na Outlook, pamoja na Majedwali ya Google na Hati. Blogu ya Michael imejitolea kushiriki maarifa na ujuzi wake na wengine, kutoa vidokezo na mafunzo ambayo ni rahisi kufuata ili kuboresha tija na ufanisi. Iwe wewe ni mtaalamu aliyebobea au umeanza, blogu ya Michael inatoa maarifa muhimu na ushauri wa vitendo ili kupata manufaa zaidi kutoka kwa zana hizi muhimu za programu.