Smart avtomatik toʻldirish pastga va oʻngga

Mundarija

Hozirgacha, ba'zida tabassum bilan 10 yil oldingi birinchi korporativ treninglarimdan birini eslayman.

Tasavvur qiling: futbol maydonidek ulkan FMCG xalqaro kompaniyasi vakolatxonasining ochiq kosmik ofisi. Chiroyli dizayn, qimmatbaho ofis jihozlari, kiyinish kodi, burchaklarda gurkirab yurgan chet elliklar – hammasi shu 🙂 Uchrashuv xonalaridan birida men iqtisodiy bo'limning 2003 nafar asosiy xodimlari uchun Excel 15 ning o'sha paytdagi joriy versiyasi bo'yicha ikki kunlik malaka oshirishni boshlayman. , ularning rahbari bilan birga. Biz tanishamiz, men ulardan biznes vazifalari, muammolari haqida so'rayman, bir nechta tipik ish fayllarini ko'rsatishni so'rayman. Ular SAP dan yuk tushirishning kilometr uzunligini, bu borada tuzgan hisobot varaqlarini va hokazolarni ko'rsatadi. Xo'sh, bu tanish narsa - men mavzular va vaqtni aqlan aniqlayman, tinglovchilarga moslashaman. Ko'zim qichig'i bilan men ishtirokchilardan biri o'z hisobotining bir qismini namoyish qilib, formulali katakchani sabr bilan quyi o'ng burchakdagi qora xoch bilan bir necha ming qatorga tortib, so'ng oxirini o'tkazib yuborganini ko'raman. stol pashsha, uni orqaga tortadi va hokazo. Bunga dosh berolmay, sichqonchani ekran atrofida burishtirib turishini to'xtatib, qora xochni ikki marta bosganimni ko'rsatib, oxirigacha avtomatik to'ldirish haqida tushuntiraman. 

To'satdan men tomoshabinlarning shubhali jimligini va hamma menga g'alati qarashlarini angladim. Iloji bo'lsa, atrofimga beixtiyor qarayman - hammasi joyida, qo'llarim va oyoqlarim joyida, pashsham tugmachali. Men so'nggi so'zlarimni qandaydir dahshatli bandni qidirib, aqlan orqaga qaytaraman - hech qanday jinoiy narsa yo'q edi, shekilli. Shundan so'ng, guruh boshlig'i indamay o'rnidan turadi, qo'limni silkitadi va tosh yuz bilan aytadi: "Rahmat, Nikolay. Ushbu trening yakunlanishi mumkin.

Xulosa qilib aytganda, ularning hech biri qora xochni ikki marta bosish va avtoto'ldirish haqida ma'lumotga ega emasligi ma'lum bo'ldi. Tarixan shunday bo'ldiki, ularga bunday oddiy, ammo kerakli narsani ko'rsatadigan hech kim yo'q edi. Butun bo'lim minglab qatorlar uchun formulalarni qo'lda tortdi, bechoralar. Va men shu yerdaman. Neft sahnasi. Keyin bo'lim boshlig'i o'z kompaniyasining nomini hech kimga aytmaslikni juda so'radi 🙂

Bir necha marta keyin shunga o'xshash vaziyatlar bor edi, lekin faqat individual tinglovchilar bilan - hozir ko'pchilik, albatta, bu funktsiyani bilish. 

Smart avtomatik toʻldirish pastga va oʻnggaSavol boshqacha. Bunday ajoyib xususiyatni o'zlashtirishning birinchi quvonchidan so'ng, ko'pchilik foydalanuvchilar qora xochni ikki marta bosish orqali formulalarni avtomatik nusxalash (avtomatik to'ldirish belgisi) barcha ijobiy va salbiy tomonlarga ega ekanligini tushunishadi:

  • Nusxa olish har doim ham jadval oxirida sodir bo'lmaydi. Agar jadval monolit bo'lmasa, ya'ni qo'shni ustunlarda bo'sh katakchalar mavjud bo'lsa, unda avtomatik to'ldirish jadvalning oxirigacha ishlashi haqiqat emas. Katta ehtimol bilan, jarayon oxirigacha eng yaqin bo'sh hujayrada to'xtaydi. Agar ustun ostida biror narsa band bo'lgan katakchalar bo'lsa, avtomatik to'ldirish aynan ular ustida to'xtaydi.
  • Nusxalashda hujayra dizayni buziladi, chunki Odatiy bo'lib, nafaqat formula, balki format ham ko'chiriladi. Tuzatish uchun nusxa ko'chirish imkoniyatlari tugmasini bosing va tanlang Faqat qadriyatlar (Formatsiz to'ldirish).
  • Formulani qulay tarzda cho'zishning tezkor usuli yo'q pastga emas, balki o'nggaqo'l bilan tortib olishdan tashqari. Qora xochni ikki marta bosish shunchaki pastga tushadi.

Keling, ushbu kamchiliklarni oddiy makros bilan tuzatishga harakat qilaylik.

Klaviatura yorlig'ini chapga bosing Alt + F11 yoki tugma Visual Basic tab dasturchi (ishlab chiquvchi). Menyu orqali yangi bo'sh modulni joylashtiring Qo'shish - modul va ushbu makroslarning matnini u yerga ko'chiring:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Agar rng.Cells.Count > 1 bo'lsa, keyin n = rng.Cells(1).Row + rng.Rows. Hisoblash - ActiveCell.Row ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Type:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(-1, 0).CurrentRegion Agar rng.Cells.Count > 1 bo'lsa, n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Turi: =xlFillValues ​​End If End Sub  

Bunday makroslar:

  • nafaqat pastga (SmartFillDown), balki o'ngga ham to'ldirishi mumkin (SmartFillRight)
  • pastdagi yoki o'ngdagi hujayralar formatini buzmang - faqat formula (qiymat) ko'chiriladi
  • bo'sh qo'shni hujayralar e'tiborga olinmaydi va nusxa ko'chirish ma'lumotlarning eng yaqin bo'shlig'iga yoki birinchi egallangan katakka emas, balki jadvalning oxiriga qadar amalga oshiriladi.

Qulaylik uchun tugma yordamida ushbu makroslarga klaviatura yorliqlarini belgilashingiz mumkin Makroslar - Variantlar (Makrolar — Variantlar) yorliqda. dasturchi (ishlab chiquvchi). Endi ustunning birinchi katagiga kerakli formula yoki qiymatni kiritish va makro uchun belgilangan tugmalar birikmasini bosish kifoya qiladi, bu avtomatik ravishda butun ustunni (yoki qatorni) to'ldiradi:

Go'zallik.

PS Formulalarni jadval oxirigacha nusxalash bilan bog'liq muammoning bir qismi Excel 2007 da "aqlli jadvallar" paydo bo'lishi bilan hal qilindi. To'g'ri, ular har doim ham, hamma joyda ham mos emas. Va o'ng tomonda, Excel hech qachon mustaqil ravishda nusxa olishni o'rganmagan.

  • Makroslar nima, ulardan qanday foydalanish, Visual Basic kodini qayerdan olish va uni qaerga joylashtirish.
  • Excel 2007-2013 uchun aqlli jadvallar
  • Formulalarni havolani siljitmasdan nusxalash

Leave a Reply