Nutikas automaattäitmine alla ja paremale

Sisu

Siiani meenutan vahel naeratusega üht oma esimestest välifirmakoolitustest 10 aastat tagasi.

Kujutage ette: rahvusvahelise FMCG ettevõtte esinduse avatud ruumikontor, tohutu kui jalgpalliväljak. Stiilne disain, kallis kontoritehnika, riietumisstiil, väljarändajad nurkades kaagutavad – see on kõik 🙂 Ühes koosolekuruumis alustan kahepäevast täiendkoolitust tollal kehtiva Excel 2003 versiooni kohta 15 majandusosakonna võtmetöötajale , koos nende juhiga. Saame tuttavaks, küsin neilt äriülesannete, probleemide kohta, palun näidata mitmeid tüüpilisi tööfaile. Näidatakse SAP-ist mahalaadimise kilomeetri pikkust pikkust, aruannete lehti, mida nad selle kohta teevad jne. Noh, see on tuttav asi – mõtlen mõttes välja teemad ja ajastuse, kohanen publikuga. Silmanurgast märkan, kuidas üks osalejatest, demonstreerides tükki oma raportist, tõmbab kannatlikult valemiga lahtrit all paremas nurgas oleva musta risti juurest mitu tuhat rida allapoole, seejärel jätab vahele laud lennult, tõmbab selle tagasi jne. Kui ma ei suuda seda taluda, katkestan ta hiire ümber ekraani keeramise ja näitan topeltklõpsu mustal ristil, selgitades automaatse lõpetamise kohta kuni peatuseni. 

Järsku taipan, et publik on kahtlaselt vaikne ja kõik vaatavad mind imelikult. Vaatan märkamatult enda ümber, kus vähegi saan – kõik on korras, käed-jalad paigas, kärbes nööbid kinni. Kerin mõttes oma viimaseid sõnu tagasi, otsides mingit kohutavat klauslit – näib, et midagi kriminaalset polnud. Selle peale tõuseb rühmapealik vaikselt püsti, surub mu kätt ja ütleb kivinäoga: “Aitäh, Nikolai. Selle koolituse saab läbida.

Lühidalt, selgus, et ühelgi neist polnud mustal ristil topeltklõpsamisest ja automaatsest täitmisest õrna aimugi. Ajalooliselt juhtus kuidagi nii, et polnud kedagi, kes neile nii lihtsat, aga vajalikku asja ette näitaks. Terve osakond tõmbas tuhandetele ridadele käsitsi valemeid, vaesed sellid. Ja siin ma olen. Nafta stseen. Osakonnajuhataja palus siis väga, et nende firma nime mitte kellelegi avaldada 🙂

Mitu korda hiljem oli sarnaseid olukordi, kuid ainult üksikute kuulajatega – enamik muidugi teab seda funktsiooni nüüd. 

Nutikas automaattäitmine alla ja paremaleKüsimus on erinev. Pärast esimest rõõmu sellise suurepärase funktsiooni omandamise üle mõistab enamik kasutajaid, et valemite automaatsel kopeerimisel topeltklõpsuga mustal ristil (automaatse täitmise marker) on kõik positiivsed ja negatiivsed küljed:

  • Kopeerimine ei juhtu alati tabeli lõppu. Kui tabel ei ole monoliitne, st kõrvuti asetsevates veergudes on tühjad lahtrid, siis pole tõsiasi, et automaatne täitmine töötab tabeli lõpuni. Tõenäoliselt peatub protsess enne lõppu jõudmist lähimas tühjas lahtris. Kui veeru all on lahtrid, mis on hõivatud millegi poolt, peatub automaatne täitmine nendel täpselt.
  • Kopeerimisel raku disain rikub, sest Vaikimisi ei kopeerita mitte ainult valemit, vaid ka vormingut. Parandamiseks klõpsake kopeerimisvalikute nuppu ja valige Ainult väärtused (Täida ilma vorminguta).
  • Valemi mugavaks venitamiseks pole kiiret võimalust mitte alla vaid paremalevälja arvatud käsitsi tõmbamine. Topeltklõps mustal ristil on lihtsalt all.

Proovime need puudused lihtsa makroga parandada.

Vajutage kiirklahvi vasakule Alt + F11 või nuppu Visual Basic tab arendaja (Arendaja). Sisestage menüü kaudu uus tühi moodul Sisesta – moodul ja kopeerige nende makrode tekst sinna:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Kui rng.Cells.Count > 1 Siis n = rng.Cells(1).Row + rng.Rows. Loendus – ActiveCell.Row ActiveCell.AutoFill Sihtkoht:=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 Kui rng.Cells.Count > 1, siis n = rng.Cells(1).Veerg + rng.Veerud.Arv - ActiveCell.Column ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Tüüp: =xlFillValues ​​End If End Sub  

Sellised makrod:

  • saab täita mitte ainult alla (SmartFillDown), vaid ka paremale (SmartFillRight)
  • ärge rikkuge allpool või paremal asuvate lahtrite vormingut – kopeeritakse ainult valem (väärtus).
  • tühje külgnevaid lahtreid ignoreeritakse ja kopeerimine toimub täpselt tabeli lõpuni, mitte andmete lähima tühimiku või esimese hõivatud lahtrini.

Suurema mugavuse huvides saate nendele makrodele nupu abil määrata kiirklahve Makrod – Valikud (Makrod – valikud) seal vahekaardil. arendaja (Arendaja). Nüüd piisab, kui sisestada soovitud valem või väärtus veeru esimesse lahtrisse ja vajutada makro jaoks määratud klahvikombinatsiooni, et kogu veerg (või rida) automaatselt täita:

Ilu.

PS Osa valemite tabeli lõppu kopeerimise probleemist lahendati Excel 2007-s nutikate tabelite tulekuga. Tõsi, need pole alati ja mitte kõikjal sobivad. Ja paremal, Excel ei õppinud kunagi iseseisvalt kopeerima.

  • Mis on makrod, kuidas neid kasutada, kust saada Visual Basicu koodi ja kuhu see kleepida.
  • Nutikad tabelid Excelis 2007–2013
  • Kopeerige valemid ilma lingi nihutamiseta

Jäta vastus