Jedwali la yaliyomo
Leo tutaendelea kugundua vitendaji maalum vya Excel. Kama vile tayari unajua jinsi ya kuunda UDF (na, natumai, umejaribu pia kuzitumia katika Excel yako), hebu tuchimbue kwa undani zaidi na tujifunze jinsi ya kutumia na kuhifadhi vitendaji vilivyobainishwa na mtumiaji katika Excel.
Zaidi ya hayo, tutakuonyesha jinsi ya kuhifadhi utendakazi wako kwa urahisi katika faili jalizi ya Excel ili kuzitumia baadaye katika mibofyo michache.
Kwa hivyo, haya ndiyo tutakayozungumzia:
Njia tofauti za kutumia UDF katika Excel
Kutumia UDF kwenye laha za kazi
Ukishathibitisha kwamba UDF zako zinafanya kazi ipasavyo, unaweza kuzitumia katika Excel fomula au katika msimbo wa VBA.
Unaweza kutumia vitendaji maalum katika kitabu cha kazi cha Excel kwa njia sawa na unavyotumia vitendakazi vya kawaida. Kwa mfano, andika tu katika kisanduku fomula iliyo hapa chini:
= GetMaxBetween(A1:A6,10,50)
UDF inaweza kutumika pamoja na vitendakazi vya kawaida. Kwa mfano, ongeza maandishi kwa thamani ya juu iliyokokotolewa:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Unaweza kuona matokeo katika picha ya skrini hapa chini:
Wewe inaweza kupata nambari ambayo ni ya juu zaidi na iko katika safu kutoka 10 hadi 50.
Hebu tuangalie fomula nyingine:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Kitendaji maalum GetMaxBetween hukagua masafa B2:B9 na kupata idadi ya juu zaidi kati ya 10 na 50. Kisha, kwa kutumia INDEX + MATCH, tunapata jina la bidhaa linalolingana na thamani hii ya juu zaidi:
Kama unavyoona, matumizi ya vitendaji maalum sio tofauti sana na Excel ya kawaidakazi.
Unapofanya hivi, kumbuka kuwa kitendakazi kilichobainishwa na mtumiaji kinaweza tu kurudisha thamani, lakini hakiwezi kufanya vitendo vingine vyovyote. Soma zaidi kuhusu vizuizi vya vitendakazi vilivyobainishwa na mtumiaji.
Kutumia UDF katika taratibu na vitendakazi vya VBA
UDF pia kunaweza kutumika katika makro ya VBA. Hapo chini unaweza kuona msimbo mkuu unaotafuta thamani ya juu zaidi katika safu kutoka 10 hadi 50 kwenye safu iliyo na kisanduku amilifu.
Sub MacroWithUDF() Dim Rng Kama Masafa, maxcase, i As Long With ActiveSheet.Range( Seli(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Visanduku(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween = (.Cells50,1) Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubMsimbo mkuu una kitendakazi maalum
GetMaxBetween(.Cells, 10, 50)
It hupata thamani ya juu zaidi katika safu wima inayotumika. Thamani hii itaangaziwa basi. Unaweza kuona matokeo ya jumla katika picha ya skrini iliyo hapa chini.
Kitendo maalum cha kukokotoa kinaweza pia kutumika ndani ya chaguo jingine la kukokotoa maalum. Hapo awali katika blogu yetu, tuliangalia tatizo la kubadilisha nambari hadi maandishi kwa kutumia chaguo maalum la kukokotoa liitwalo SpellNumber .
Kwa msaada wake, tunaweza kupata thamani ya juu zaidi kutoka kwa safu na mara moja. iandike kama maandishi.
Ili kufanya hivi, tutaunda chaguo maalum la kukokotoa ambapo tutatumia vitendakazi. GetMaxBetween na SpellNumber ambazo tayari tunazifahamu.
Utendaji wa SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum) KaziKama unavyoona, GetMaxBetween chaguo za kukokotoa ni hoja ya chaguo za kukokotoa nyingine maalum, SpellNumber . Inafafanua thamani ya juu, kama tumefanya mara nyingi hapo awali. Nambari hii kisha inabadilishwa kuwa maandishi.
Katika picha ya skrini iliyo hapo juu, unaweza kuona jinsi kitendakazi cha SpellGetMaxBetween hupata idadi ya juu zaidi kati ya 100 na 500 na kisha huibadilisha kuwa maandishi.
Kupigia UDF kutoka vitabu vingine vya kazi
Ikiwa umeunda UDF kwenye kitabu chako cha kazi, hii, kwa bahati mbaya, haimaanishi kwamba hutakabiliana na matatizo yoyote hata kidogo.
Katika uzoefu wangu, watumiaji wengi haraka au baadaye huunda mkusanyiko wao wa kibinafsi wa makro na vitendaji maalum ili kuhariri michakato na hesabu otomatiki. Na hapa tatizo linatokea - msimbo wa utendakazi uliobainishwa na mtumiaji katika Visual Basic unahitaji kuhifadhiwa mahali fulani ili utumike baadaye kazini.
Ili kutumia utendakazi maalum, kitabu cha kazi ambapo umekihifadhi lazima kifunguliwe. katika Excel yako. Ikiwa sivyo, utapata #JINA! kosa wakati wa kujaribu kuitumia. Hitilafu hii inaonyesha kuwa Excel haijui jina la fomula unayotaka kutumia katika fomula.
Hebu tuangalie njia katikaambayo unaweza kutumia vitendaji maalum unavyounda.
Njia ya 1. Ongeza jina la kitabu cha kazi kwenye kitendakazi
Unaweza kutaja jina la kitabu cha kazi ambamo kinapatikana kabla ya jina la kitabu cha kazi. kazi. Kwa mfano, ikiwa umehifadhi chaguo maalum la kukokotoa GetMaxBetween() katika kitabu cha kazi kiitwacho My_Functions.xlsm , basi lazima uweke fomula ifuatayo:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Njia ya 2. Hifadhi UDF zote katika faili moja ya kawaida
Hifadhi vitendaji vyote maalum katika kitabu kimoja maalum cha kazi (kwa mfano, My_Functions.xlsm ) na unakili kitendakazi unachotaka kutoka humo hadi kitabu cha kazi cha sasa, ikiwa ni lazima.
Kila wakati unapounda kitendakazi kipya maalum, unahitaji kuiga msimbo wake kwenye kitabu cha kazi ambacho utakitumia. Kwa njia hii, usumbufu kadhaa unaweza kutokea:
- Ikiwa kuna faili nyingi za kufanya kazi, na utendakazi unahitajika kila mahali, basi msimbo utalazimika kunakiliwa kwenye kila kitabu.
- 14>Kumbuka kuhifadhi kitabu cha kazi katika umbizo lililowezeshwa kwa jumla (.xlsm au .xlsb).
- Wakati wa kufungua faili kama hiyo, ulinzi dhidi ya macros utaonyesha onyo kila wakati, ambalo lazima lithibitishwe. Watumiaji wengi huogopa wanapoona onyo la upau wa manjano unaowauliza kuwasha makro. Ili kuepuka kuona ujumbe huu, unahitaji kuzima ulinzi wa Excel kabisa. Hata hivyo, hii inaweza isiwe sahihi na salama kila wakati.
Nadhani utakubaliana nami kwamba wakati wote kufungua a.faili na kunakili msimbo wa vitendaji vilivyoainishwa na mtumiaji kutoka kwayo au kuandika jina la faili hii katika fomula sio suluhisho bora. kwa hivyo, tulikuja kwa njia ya tatu.
Njia ya 3. Unda faili ya nyongeza ya Excel
Nadhani njia bora ni kuhifadhi vitendaji maalum vinavyotumiwa mara kwa mara katika faili ya kuongeza ya Excel. . Manufaa ya kutumia programu jalizi:
- Unahitaji kuunganisha programu jalizi kwenye Excel mara moja tu. Baada ya hapo, unaweza kutumia taratibu na kazi zake katika faili yoyote kwenye kompyuta hii. Huhitaji kuhifadhi vitabu vyako vya kazi katika umbizo la .xlsm na .xlsb kwa kuwa msimbo wa chanzo hautahifadhiwa humo bali katika faili ya programu jalizi.
- Hutasumbuliwa tena na ulinzi wa macros kama vile. programu jalizi kila mara hurejelea vyanzo vinavyoaminika.
- Jalada ni faili tofauti. Ni rahisi kuihamisha kutoka kwa kompyuta hadi kwenye kompyuta, ili kuishiriki na wenzako.
Tutazungumza zaidi kuhusu kuunda na kutumia programu jalizi baadaye.
Kutumia kiongezi- ins kuhifadhi vipengele maalum
Je, ninawezaje kuunda programu jalizi yangu? Hebu tupitie mchakato huu hatua kwa hatua.
Hatua ya 1. Unda faili ya kuongeza
Fungua Microsoft Excel, unda kitabu kipya cha kazi, na ukihifadhi chini ya jina lolote linalofaa (kwa mfano, My_Functions) katika umbizo la nyongeza. Ili kufanya hivyo, tumia menyu ya Faili - Hifadhi Kama au kitufe cha F12. Hakikisha umebainisha aina ya faili Ongezeko la Excel :
Jalada lako la kuongeza litakuwa na kiendelezi .xlam.
Kidokezo. Tafadhali kumbuka kuwakwa chaguo-msingi Excel huhifadhi programu jalizi kwenye folda ya C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns . Ninapendekeza ukubali eneo chaguomsingi. Ikiwa ungependa, unaweza kutaja folda nyingine yoyote. Lakini basi, wakati wa kuunganisha nyongeza, utahitaji kupata na kutaja eneo lake jipya kwa mikono. Ikiwa utaihifadhi kwenye folda chaguo-msingi, sio lazima utafute programu jalizi kwenye kompyuta yako. Excel itaorodhesha kiotomatiki.
Hatua ya 2. Unganisha faili ya programu jalizi
Sasa programu jalizi ambayo tumeunda inahitaji kuunganishwa kwenye Excel. Kisha itapakiwa moja kwa moja wakati programu itaanza. Ili kufanya hivyo, tumia menyu Faili - Chaguzi - Viongezeo . Hakikisha kuwa Viongezeo vya Excel vimechaguliwa katika sehemu ya Dhibiti . Bofya kitufe cha Nenda chini ya dirisha. Katika dirisha linaloonekana, weka alama kwenye My_Functions zetu. Ikiwa huioni kwenye orodha, bofya kitufe cha Vinjari na uvinjari hadi eneo la faili yako jalizi.
Ikiwa wanatumia programu jalizi kuhifadhi vitendaji maalum, kuna sheria moja rahisi ya kufuata. Ikiwa unahamisha kitabu cha kazi kwa watu wengine, hakikisha pia kuhamisha nakala ya programu jalizi ambayo ina utendakazi unaotaka. Wanapaswa kuiunganisha kwa njia sawa na ulivyoiunganisha sasa.
Hatua ya 3. Ongeza vitendaji maalum na makro kwenye programu jalizi
Jalada letu limeunganishwa kwenye Excel, lakini halifanyiki. hazina utendakazi wowotebado. Ili kuongeza UDF mpya kwake, fungua Kihariri cha Visual Basic kwa kubonyeza Alt + F11 . Kisha unaweza kuongeza sehemu mpya kwa msimbo wa VBA kama ilivyoelezwa katika mafunzo yangu ya Unda UDFs.
Chagua faili yako ya programu jalizi ( My_Finctions.xlam ) kwenye dirisha la VBAProject. Tumia menyu ya Ingiza - Moduli ili kuongeza sehemu maalum. Unahitaji kuandika utendakazi maalum ndani yake.
Unaweza kuandika mwenyewe msimbo wa kitendakazi kilichobainishwa na mtumiaji au unakili kutoka mahali fulani.
Ni hayo tu. Sasa umeunda programu-jalizi yako mwenyewe, umeiongeza kwa Excel na unaweza kutumia UDF ndani yake. Ikiwa ungependa kutumia UDF zaidi, andika tu msimbo katika sehemu ya programu-jalizi katika kihariri cha VBA na uihifadhi.
Ndivyo ilivyo kwa leo. Tumejifunza jinsi ya kutumia vitendaji vilivyobainishwa na mtumiaji kwenye kitabu chako cha kazi. Tunatumai kuwa utapata miongozo hii kuwa ya manufaa. Ikiwa una maswali yoyote, andika katika maoni kwa makala hii.