Ağıllı avtomatik doldurma aşağı və sağa

Mündəricat

İndiyə qədər bəzən təbəssümlə 10 il əvvəl ilk korporativ sahə təlimlərimdən birini xatırlayıram.

Təsəvvür edin: futbol meydançası kimi nəhəng FMCG beynəlxalq şirkətinin nümayəndəliyinin açıq məkan ofisi. Qəşəng dizayn, bahalı ofis avadanlığı, geyim kodu, künclərdə əyləşən əcnəbilər – hamısı budur 🙂 İclas otaqlarının birində mən iqtisadiyyat şöbəsinin 2003 əsas əməkdaşı üçün Excel 15-ün o vaxtkı hazırkı versiyası üzrə iki günlük təkmilləşdirmə təliminə başlayıram. , onların lideri ilə birlikdə. Tanış oluruq, onlardan biznes tapşırıqları, problemlər barədə soruşuram, bir neçə tipik iş faylını göstərmələrini xahiş edirəm. Onlar SAP-dan yükləmənin kilometr uzunluğunu, bununla bağlı hazırladıqları hesabat vərəqlərini və s. göstərirlər. Yaxşı, bu, tanış bir şeydir – mən zehni olaraq mövzuları və vaxtı müəyyənləşdirirəm, auditoriyaya uyğunlaşıram. Gözümün ucu ilə iştirakçılardan birinin məruzəsinin bir hissəsini nümayiş etdirərək düsturlu hücrəni sağ alt küncdəki qara xaç ilə səbirlə bir neçə min sətir aşağı çəkdiyini, sonra da sonunu atladığını görürəm. masa sürətlə gedir, onu geri çəkir və s. Buna dözə bilməyərək, siçanı ekranın ətrafında bükərək onun sözünü kəsdim və qara xaç üzərində iki dəfə klikləməyi göstərərək dayanacağa qədər avtomatik tamamlamanı izah etdim. 

Birdən anlayıram ki, tamaşaçılar şübhəli şəkildə sakitdirlər və hamı mənə qəribə baxır. Harada oluramsa, hiss olunmadan ətrafa baxıram - hər şey qaydasındadır, qollarım və ayaqlarım yerindədir, milçəyim düymələnir. Hansısa dəhşətli bənd axtarmaq üçün son sözlərimi zehni olaraq geri çəkirəm - görünür, cinayətkar heç nə yox idi. Bundan sonra qrup rəhbəri səssizcə ayağa qalxır, əlimi sıxır və daş üzlə deyir: “Sağ ol, Nikolay. Bu təlim tamamlana bilər.

Yaxşı, bir sözlə, məlum oldu ki, onların heç birinin qara xaç üzərinə iki dəfə klikləmək və avtomatik tamamlama haqqında məlumatı yoxdur. Tarixən elə oldu ki, onlara bu qədər sadə, lakin zəruri bir şeyi göstərən yox idi. Bütün şöbə minlərlə sətir üçün düsturları əl ilə çəkdi, yazıq yoldaşlar. Və buradayam. Neft səhnəsi. Şöbə müdiri daha sonra şirkətlərinin adını heç kimə açıqlamamağı çox xahiş etdi 🙂

Bir neçə dəfə sonra oxşar vəziyyətlər oldu, ancaq fərdi dinləyicilərlə - indi çoxları bu funksiyanı bilirlər. 

Ağıllı avtomatik doldurma aşağı və sağaSual başqadır. Belə bir gözəl xüsusiyyəti mənimsəməyin ilk sevincindən sonra əksər istifadəçilər başa düşürlər ki, qara xaç üzərinə iki dəfə klikləməklə düsturların avtomatik surətdə çıxarılması (avtomatik tamamlama markeri) bütün müsbət və mənfi cəhətlərə malikdir:

  • Kopyalama həmişə cədvəlin sonunda baş vermir. Əgər cədvəl monolit deyilsə, yəni bitişik sütunlarda boş xanalar varsa, o zaman avtomatik tamamlamanın cədvəlin sonuna qədər işləyəcəyi fakt deyil. Çox güman ki, proses sona çatmamış ən yaxın boş kamerada dayanacaq. Sütunun altında bir şey tərəfindən tutulan xanalar varsa, avtomatik tamamlama tam olaraq onların üzərində dayanacaq.
  • Kopyalayarkən hüceyrə dizaynı korlanır, çünki Varsayılan olaraq, yalnız formula deyil, həm də format kopyalanır. Düzəliş etmək üçün kopyalama seçimləri düyməsini basın və seçin Yalnız dəyərlər (Formatsız doldurun).
  • Formulu rahat şəkildə uzatmağın sürətli bir yolu yoxdur aşağı deyil, sağaəllə çəkmək istisna olmaqla. Qara xaç üzərinə iki dəfə klikləmək sadəcə aşağıdır.

Sadə bir makro ilə bu çatışmazlıqları düzəltməyə çalışaq.

Klaviatura qısa yolunu sola basın Alt + F11 və ya düymə Visual Basic nişanı geliştirici (İnkişaf etdirici). Menyu vasitəsilə yeni boş modul daxil edin Daxil et - Modul və bu makroların mətnini oraya köçürün:

Sub SmartFillDown() Dim rng diapazon kimi, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Əgər rng.Cells.Count > 1 O zaman n = rng.Cells(1).Row + rng.Rows. Sayı - ActiveCell.Row ActiveCell.AutoFill Təyinatı:=ActiveCell.Resize(n, 1), Növ:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng diapazon kimi, n As Long Set rng = ActiveCell.Offset(-1, 0).CurrentRegion Əgər rng.Cells.Count > 1 Əgər n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Növ: =xlFillValues ​​End If End Sub  

Belə makrolar:

  • yalnız aşağı deyil (SmartFillDown), həm də sağa (SmartFillRight) doldura bilər
  • Aşağıdakı və ya sağdakı xanaların formatını pozmayın - yalnız düstur (dəyər) kopyalanır
  • boş bitişik xanalar nəzərə alınmır və surətin çıxarılması verilənlərdəki ən yaxın boşluğa və ya ilk işğal edilmiş xanaya deyil, cədvəlin sonuna qədər baş verir.

Daha çox rahatlıq üçün düymədən istifadə edərək bu makrolara klaviatura qısa yolları təyin edə bilərsiniz Makrolar - Seçimlər (Makrolar — Seçimlər) orada tabda. geliştirici (İnkişaf etdirici). İndi sütunun ilk xanasına istədiyiniz düstur və ya dəyəri daxil etmək və bütün sütunu (və ya sətiri) avtomatik doldurmaq üçün makro üçün göstərilən düymələr kombinasiyasını sıxmaq kifayətdir:

Gözəllik.

PS Düsturların cədvəlin sonuna kopyalanması ilə bağlı problemin bir hissəsi Excel 2007-də ​​“ağıllı masaların” meydana çıxması ilə həll edildi. Düzdür, onlar həmişə və hər yerdə uyğun deyil. Və sağda, Excel heç vaxt öz başına kopyalamağı öyrənməyib.

  • Makroslar nədir, onlardan necə istifadə etməli, Visual Basic kodunu haradan əldə etməli və hara yapışdırmalı.
  • Excel 2007-2013-də ağıllı masalar
  • Düsturları keçid dəyişdirmədən kopyalayın

Cavab yaz