Mjazo otomatiki mahiri chini na kulia

Yaliyomo

Hadi sasa, wakati mwingine kwa tabasamu nakumbuka mojawapo ya mafunzo yangu ya kwanza ya shirika miaka 10 iliyopita.

Hebu fikiria: ofisi ya anga ya wazi ya ofisi ya mwakilishi wa kampuni ya kimataifa ya FMCG, kubwa kama uwanja wa mpira. Ubunifu wa kifahari, vifaa vya gharama kubwa vya ofisi, kanuni za mavazi, wageni wakipiga kelele kwenye kona - ni hayo tu 🙂 Katika mojawapo ya vyumba vya mikutano, ninaanza mafunzo ya hali ya juu ya siku mbili kuhusu toleo la sasa la Excel 2003 kwa wafanyikazi 15 wakuu wa idara ya uchumi. , pamoja na kiongozi wao. Tunafahamiana, ninawauliza juu ya kazi za biashara, shida, ninawauliza waonyeshe faili kadhaa za kawaida za kazi. Zinaonyesha urefu wa kilomita wa upakuaji kutoka kwa SAP, karatasi za ripoti wanazotoa kuhusu hili, n.k. Naam, ni jambo la kawaida - kiakili ninafikiria mada na wakati, kurekebisha kwa hadhira. Kutoka kwenye kona ya jicho langu, ninaona jinsi mmoja wa washiriki, akionyesha kipande cha ripoti yake, kwa subira kuvuta kiini na fomula chini na msalaba mweusi kwenye kona ya chini ya kulia kwa mistari elfu kadhaa, kisha kuruka mwisho wa meza juu ya kuruka, huivuta nyuma, nk. Haiwezi kusimama, ninamkatisha akipiga kipanya karibu na skrini na kuonyesha mara mbili-click kwenye msalaba mweusi, akielezea juu ya kukamilisha otomatiki hadi kuacha. 

Ghafla nagundua kuwa hadhira iko kimya kwa kushuku na kila mtu ananitazama kwa kushangaza. Ninajiangalia bila kuonekana popote ninapoweza - kila kitu kiko sawa, mikono na miguu yangu iko mahali, nzi wangu amefungwa. Ninarudisha nyuma maneno yangu ya mwisho kiakili nikitafuta kifungu cha kutisha - hakukuwa na uhalifu wowote, inaonekana. Baada ya hapo, mkuu wa kikundi anainuka kimya, akinishika mkono na kusema kwa uso wa jiwe: "Asante, Nikolai. Mafunzo haya yanaweza kukamilika.

Kweli, kwa kifupi, ikawa kwamba hakuna hata mmoja wao aliye na kidokezo juu ya kubonyeza mara mbili kwenye msalaba mweusi na kukamilisha otomatiki. Kwa namna fulani ilitokea kihistoria kwamba hapakuwa na mtu wa kuwaonyesha jambo rahisi lakini la lazima. Idara nzima ilichota fomula kwa maelfu ya mistari, watu maskini. Na mimi hapa. Eneo la mafuta. Mkuu wa idara hiyo aliuliza sana asifichue jina la kampuni yao kwa mtu yeyote 🙂

Mara kadhaa baadaye kulikuwa na hali sawa, lakini tu kwa wasikilizaji binafsi - wengi sasa, bila shaka, wanajua kazi hii. 

Mjazo otomatiki mahiri chini na kuliaSwali ni tofauti. Baada ya furaha ya kwanza ya kusimamia kipengele hiki cha ajabu, watumiaji wengi huelewa kuwa kunakili kiotomatiki kwa fomula kwa kubofya mara mbili msalaba mweusi (alama kamili) ina vipengele vyote vyema na hasi:

  • Kunakili si mara zote hutokea hadi mwisho wa jedwali. Ikiwa meza sio monolithic, yaani, kuna seli tupu kwenye safu zilizo karibu, basi sio ukweli kwamba kukamilisha kiotomatiki kutafanya kazi hadi mwisho wa meza. Uwezekano mkubwa zaidi, mchakato utasimama kwenye seli tupu iliyo karibu kabla ya kufikia mwisho. Ikiwa kuna seli zinazochukuliwa na kitu chini ya safu, basi kukamilisha kiotomatiki kutasimama juu yao haswa.
  • Wakati wa kunakili muundo wa seli huharibika, kwa sababu Kwa chaguo-msingi, sio tu formula inakiliwa, lakini pia muundo. Ili kusahihisha, bofya kitufe cha chaguo za kunakili na uchague Maadili pekee (Jaza bila umbizo).
  • Hakuna njia ya haraka ya kunyoosha formula kwa urahisi si chini bali kuliaisipokuwa kuvuta kwa mkono. Kubofya mara mbili kwenye msalaba mweusi ni chini tu.

Wacha tujaribu kurekebisha mapungufu haya na macro rahisi.

Bonyeza mikato ya kibodi kushoto Alt + F11 au kifungo Visual Basic tab developer (Msanidi programu). Ingiza moduli mpya tupu kupitia menyu Ingiza - Moduli na unakili maandishi ya macros haya hapo:

Sub SmartFillDown() Dim rng Kama Masafa, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion If rng.Cells.Count > 1 Kisha n = rng.Cells(1).Safu + rng.Safu. Hesabu - ActiveCell.Row ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Aina:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng Kama Masafa, n As Long Set rng = ActiveCell.Offset(-1, 0).CurrentRegion Ikiwa rng.Cells.Hesabu > 1 Kisha n = rng.Cells(1).Safuwima + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Type: =xlFillValues ​​Mwisho Ikiwa Utamaliza Sub  

Macro kama haya:

  • inaweza kujaza sio chini tu (SmartFillDown), lakini pia kulia (SmartFillRight)
  • usiharibu umbizo la seli zilizo hapa chini au kulia - tu formula (thamani) inakiliwa
  • seli tupu zilizo karibu hazizingatiwi na kunakili hufanyika haswa hadi mwisho wa jedwali, na sio kwa pengo la karibu la data au seli ya kwanza iliyochukuliwa.

Kwa urahisi zaidi, unaweza kugawa njia za mkato za kibodi kwa macros hizi kwa kutumia kitufe Macros - Chaguzi (Macros - Chaguzi) hapo kwenye kichupo. developer (Msanidi programu). Sasa itakuwa ya kutosha kuingiza fomula au thamani inayotaka kwenye seli ya kwanza ya safu na bonyeza mchanganyiko maalum wa macro ili kujaza safu nzima (au safu) kiotomatiki:

Uzuri.

PS Sehemu ya tatizo la kunakili fomula hadi mwisho wa jedwali ilitatuliwa katika Excel 2007 na ujio wa "meza za smart". Kweli, sio kila wakati na sio kila mahali inafaa. Na kulia, Excel haijawahi kujifunza kunakili peke yake.

  • Macro ni nini, jinsi ya kuzitumia, wapi kupata msimbo wa Visual Basic na mahali pa kuubandika.
  • Jedwali mahiri katika Excel 2007-2013
  • Nakili fomula bila kubadilisha kiungo

Acha Reply