Bete automatiko adimenduna behera eta eskuinera

Edukiak

Orain arte, batzuetan irribarre batekin gogoratzen dut duela 10 urte nire lehen arloko prestakuntza korporatiboetako bat.

Imajinatu: FMCG nazioarteko enpresa baten ordezkaritzaren bulego irekia, futbol zelai bezain erraldoia. Diseinu dotorea, bulegoko ekipamendu garestiak, janzkera kodea, erbesteratuak kexaka bazterretan - hori da dena 🙂 Bilera-areto batean, bi eguneko prestakuntza aurreratua hasten dut orduko egungo Excel 2003 bertsioari buruz, ekonomia-saileko 15 langile nagusientzat. , euren buruzagiarekin batera. Ezagutzen gara, negozio-zereginez, arazoez galdetzen diet, hainbat lan-fitxategi tipiko erakusteko eskatzen diet. SAPetik deskargaren kilometroko luzera erakusten dute, horri buruz egiten dituzten txostenen fitxak, etab. Bada, gauza ezaguna da: gaiak eta denborak mentalki asmatzen ditut, ikusleei egokitzen. Begiaren ertzean, parte-hartzaileetako batek, bere txostenaren zati bat erakutsiz, nola pazientziaz tiratzen duen gelaxka beheko eskuineko izkinan dagoen gurutze beltzetik formula duen gelaxkatik behera, hainbat mila lerrotan, ondoren saltatzen du. mahaiak hegalean, atzera egiten du, etab. Ezin jasanez, sagua pantailan kiribilduz eten egiten diot eta klik bikoitza erakusten diot gurutze beltzean, auto-osaketari buruz gelditu arte azalduz. 

Bat-batean konturatzen naiz publikoa susmagarri isil-isilik dagoela eta denak arraro begiratzen nautela. Ahal dudan tokira begiratzen dut modu oharkabean: dena ondo dago, besoak eta hankak ondo daude, eulia botoiak. Nire azken hitzak mentalki atzera egiten ditut klausula ikaragarri baten bila: ez zegoen ezer kriminal, antza. Horren ostean, taldeko burua isilik altxatzen da, eskua eman eta harrizko aurpegiarekin esaten du: “Eskerrik asko, Nikolai. Prestakuntza hau osatu daiteke.

Beno, laburbilduz, haietako inork ez zuela arrastorik gurutze beltz batean klik bikoitza egin eta osatze automatikoari buruz. Historikoki gertatu zen nolabait halako gauza sinple baina beharrezkoa erakusteko inor ez egotea. Sail osoak eskuz atera zituen formulak milaka lerrotarako, gizajoak. Eta hemen nago. Olio eszena. Orduan, saileko buruak asko eskatu zuen bere enpresaren izena inori ez azaltzeko 🙂

Hainbat aldiz geroago antzeko egoerak izan ziren, baina entzule indibidualekin bakarrik -orain gehienek, jakina, ezagutzen dute funtzio hori. 

Bete automatiko adimenduna behera eta eskuineraGaldera ezberdina da. Ezaugarri zoragarri bat menderatzeko lehen pozaren ondoren, erabiltzaile gehienek ulertzen dute formulen kopia automatikoak gurutze beltzaren gainean klik bikoitza eginez (osatu automatikoko markatzailea) alderdi positibo eta negatibo guztiak dituela:

  • Kopiatzea ez da beti taularen amaieran gertatzen. Taula monolitikoa ez bada, hau da, ondoko zutabeetan gelaxka hutsak badaude, ez da egia osatze automatikoak taularen amaiera arte funtzionatuko duenik. Seguruenik, prozesua amaierara iritsi baino lehen hurbilen dagoen gelaxka hutsean geldituko da. Zutabearen azpian zerbaitek okupatutako gelaxkak badaude, osaketa automatikoa zehatz-mehatz geldituko da.
  • Kopiatzen denean zelulen diseinua hondatzen da, izan ere, berez, formula ez ezik, formatua ere kopiatzen da. Zuzentzeko, egin klik kopia aukeren botoian eta hautatu Balioak bakarrik (Bete formatu gabe).
  • Ez dago formula azkar luzatzeko ere ez behera eskuinera baizikeskuz tiratzeko izan ezik. Gurutze beltzean klik bikoitza egitea besterik ez dago.

Saia gaitezen akats hauek makro sinple batekin konpontzen.

Sakatu teklatuko lasterbidea ezkerrera Alt + F11 edo botoia Visual Basic fitxa developer (Garatzailea). Txertatu modulu huts berria menuaren bidez Txertatu – Modulua eta kopiatu bertan makro hauen testua:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion If rng.Cells.Count > 1 Then n = rng.Cells(1).Row + rng.Rows. Zenbaketa - 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 rng.Cells.Count > 1 Bada n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destination:=ActiveCell.Resize(1, n), Mota: =xlFillValues ​​End If End Sub  

Horrelako makroak:

  • Behean (SmartFillDown) ez ezik, eskuinerantz ere bete daiteke (SmartFillRight)
  • ez hondatu beheko edo eskuineko gelaxken formatua - formula (balioa) soilik kopiatzen da
  • ondoko gelaxka hutsak ez dira aintzat hartzen eta kopia taularen amaieran gertatzen da, eta ez datuen hutsune hurbilenean edo okupatutako lehen gelaxkan.

Erosotasun handiagoa lortzeko, teklatuko lasterbideak esleitu ditzakezu makro horiei botoia erabiliz Makroak - Aukerak (Makroak — Aukerak) hortxe fitxan. developer (Garatzailea). Orain nahikoa izango da zutabearen lehen gelaxkan nahi duzun formula edo balioa sartzea eta zehaztutako tekla-konbinazioa sakatzea makroak zutabe osoa (edo errenkada) automatikoki bete dezan:

Beauty.

PS Taularen amaierara formulak kopiatzeko arazoaren zati bat Excel 2007-n konpondu zen "taula adimendunen" sorrerarekin. Egia da, ez dira beti eta ez nonahi egokiak. Eta eskuinean, Excel-ek ez zuen inoiz bere kabuz kopiatzen ikasi.

  • Zer dira makroak, nola erabili, non lortu Visual Basic kodea eta non itsatsi.
  • Excel 2007-2013ko taula adimendunak
  • Kopiatu formulak esteka-aldaketarik gabe

Utzi erantzun bat