Tietueen muokkaus Suorita Excel-makro - Excel-vinkkejä

Tämä on 19. viikoittainen Excel-vinkki osoitteessa.com. Moniin Excel-vinkkeihin liittyy jonkinlainen makrotemppu. Tällä viikolla tarjoan Excel-käyttäjille, jotka eivät ole koskaan kirjoittaneet makroa, aloitusohjeet hyödyllisen Excel-makron tallentamiseen ja muokkaamiseen.

Osoitetiedot

Oletetaan, että sinulla on 400 riviä osoitetietoja, kuten vasemmassa yläkulmassa. Nimikenttä on sarakkeessa A, katuosoite sarakkeessa B ja kaupunki sarakkeessa C.

Tavoitteenasi on muuntaa tiedot yhdeksi sarakkeeksi, kuten toisessa kuvassa.

Tätä yksinkertaista ongelmaa käytetään kuvaamaan yksinkertaisen makron tallentamista, muokkaamista ja sitten suorittamista.

Excel 95 -käyttäjät: Makron tallentamisen jälkeen Excel laittaa makron työkirjasi Module1-nimiselle arkille. Voit vain napsauttaa taulukkoa päästäksesi makroon.

Vaikka tässä laskentataulukossa on 400 tietuetta, haluan tallentaa pienen osan makrosta, joka huolehtii vain ensimmäisestä osoitteesta. Makro olettaa, että soluosaaja on etunimellä. Se lisää kolme tyhjää riviä. Se kopioi solun alkuperäisen solun oikealla puolella alkuperäisen solun alla olevaan soluun. Se kopioi kaupunkisolun soluun 2 riviä alkuperäisen solun alla. Sen pitäisi siirtää solun osoitin alaspäin, jotta se on seuraavan nimen kohdalla.

Tärkeintä on ajatella tämä prosessi ennen tallennusta. Et halua tehdä paljon virheitä makron tallennuksessa.

Joten laita solun osoitin soluun A1. Siirry valikkoon ja valitse Työkalut> Makro> Tallenna uusi makro. Tallenna makro -valintaikkunassa ehdotetaan makron1 nimeä. Tämä on hieno, joten paina OK.

Excel-makrotallentimessa on yksi erittäin tyhmä oletusasetus, jota sinun on ehdottomasti muutettava, jotta tämä makro toimii. Valitse Excel 95: ssä Työkalut> Makro> Käytä suhteellisia viitteitä. Napsauta Excel 97-2003: ssa Stop-työkalurivin toista kuvaketta. Kuvake näyttää pieneltä laskentataulukolta. C3: n punasolu osoittaa toiseen punasoluun A3: ssa. Kuvaketta kutsutaan suhteelliseksi viitteeksi. Kun tämä kuvake on päällä, kuvaketta ympäröi jokin väri. Kuvake muistaa viimeisen asetuksen nykyisestä Excel-istunnosta, joten sinun on ehkä napsautettava sitä pari kertaa selvittääksesi, mikä menetelmä on käytössä. Käytä Excel 2007: ssä Näytä - Makrot - Käytä suhteellisia viitteitä.

OK, olemme valmiita lähtemään. Toimi seuraavasti:

  • Napauta alanuolta kerran siirtyäksesi soluun B1.
  • Pidä vaihtonäppäintä painettuna ja paina alanuolta kahdesti valitaksesi rivit 2, 3 ja 4
  • Valitse valikosta Lisää ja lisää sitten kolme tyhjää riviä valitsemalla Rivit.
  • Napauta ylänuolta ja sitten oikeaa nuolta siirtyäksesi soluun B2.
  • Leikkaa solu B2 painamalla Ctrl X.
  • Napsauta alanuolta, vasenta nuolta ja sitten Ctrl V liittääksesi soluun A2.
  • Napauta ylänuolta, oikeaa nuolta, oikeaa nuolta, Ctrl X, vasenta nuolta, vasenta nuolta, alanuolta, alanuolta, Ctrl V siirtääksesi C1: stä A3: een.
  • Napsauta alanuolta kahdesti niin, että solun osoitin on nyt rivillä A5 seuraavalla nimellä.
  • Napsauta "Lopeta tallennus" -kuvaketta työkalurivillä lopettaaksesi makron tallentamisen.

No, olet tallentanut ensimmäisen makron. Katsotaanpa. Valitse Työkalut> Makro> Makrot. Korosta luettelosta Makro1 ja paina Muokkaa-painiketta. Sinun pitäisi nähdä jotain, joka näyttää tältä.

Sub Macro1() ' ' Macro1 Macro ' Macro recorded 4/18/99 by Reader ' ' ActiveCell.Offset(1, 0).Range("A1:A3").Select Selection.EntireRow.Insert ActiveCell.Offset(-1, 1).Range("A1").Select Selection.Cut ActiveCell.Offset(1, -1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(-1, 2).Range("A1").Select Selection.Cut ActiveCell.Offset(2, -2).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(2, 0).Range("A1").Select End Sub

Hei, jos et ole ohjelmoija, se näyttää todennäköisesti melko pelottavalta. Älä anna sen olla. Jos on jotain, jota et ymmärrä, on erinomaista apua. Napsauta kohdistinta jossakin avainsanassa Offset ja paina F1. Jos olet asentanut VBA-ohjetiedoston, näet Offset-avainsanan ohjeaiheen. Ohje kertoo lauseen syntaksin. Se sanoo, että se on Offset (RowOffset, ColumnOffset). Etkö vielä ole kovin selvä? Etsi vihreää alleviivattua sanaa "esimerkki" ohjeen yläosasta. Excelin VBA-esimerkkien avulla voit oppia, mitä tapahtuu. Offset-esimerkissä sanotaan, että aktivoit solun kaksi riviä alla ja kolme riviä nykyisen solun oikealla puolella.

ActiveCell.Offset(3, 2).Activate

OK, joten se on vihje. Offset-toiminto on tapa liikkua Excel-laskentataulukossa. Kun otetaan huomioon tämä vähän tietoa, voit nähdä, mitä makro tekee. Ensimmäinen siirtymä (1, 0) on paikka, jossa siirrimme soluyksikön alas A2: een. Seuraava siirtymä on paikka, jossa siirrymme yhden rivin (-1 riviä) ja yhden sarakkeen yli. Et ehkä ymmärrä mitään muuta makrossa, mutta se on silti hyödyllinen.

Palaa takaisin Excel-laskentataulukkoon. Aseta solun osoitin soluun A5. Valitse Työkalut> Makro> Makrot> Makro1> Suorita. Makro suoritetaan ja toinen osoitteesi alustetaan.

Saatat sanoa, että tämän koko pitkän suuren komentosarjan valitseminen on vaikeampaa kuin vain muotoilu käsin. OK, tee sitten Työkalut> Makro> Makrot> Asetukset. Sano pikakuvakehyksessä Ctrl + w tämän makron pikanäppäin. Napsauta OK ja sulje sitten Makro-valintaikkuna valitsemalla Peruuta. Kun painat Ctrl w, makro toimii. Voit muotoilla osoitteen yhdellä näppäimen painalluksella.

Oletko valmis suurelle ajalle? Kuinka monta osoitetta sinulla on jäljellä? Löysin Ctrl wa muutaman kerran, joten minulla on jäljellä 395. Palaa makroosi. Aiomme laittaa koko makrokoodin silmukkaan. Lisää uusi rivi, jossa lukee "Tee kunnes activecell.value =" "" ennen makrokoodin ensimmäistä riviä. Lisää "Loop" -viiva ennen End Sub -riviä. Do-silmukka suorittaa kaiken Do- ja Loop-rivien välillä, kunnes se juoksee tyhjälle riville. Makro näyttää nyt tältä:

Sub Macro1() ' ' Macro1 Macro ' Macro recorded 4/18/99 by Reader ' ' Do Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Range("A1:A3").Select Selection.EntireRow.Insert ActiveCell.Offset(-1, 1).Range("A1").Select Selection.Cut ActiveCell.Offset(1, -1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(-1, 2).Range("A1").Select Selection.Cut ActiveCell.Offset(2, -2).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(2, 0).Range("A1").Select Loop End Sub

Palaa Excel-taulukkoosi. Aseta solun osoitin seuraavan nimen päälle. Paina Ctrl w ja makro muotoilee kaikki tietueesi muutamassa sekunnissa.

Excel-kirjojen kirjoittajat sanovat, että et voi tehdä mitään hyödyllistä tallentamalla makroa. Ei totta! Henkilölle, jonka piti leikata ja liittää 800 kertaa, tämä makro on erittäin hyödyllinen. Tallentaminen ja mukauttaminen kesti muutaman minuutin. Kyllä, ammattilaiset ohjelmoijat huomauttavat, että koodi on kammottoman tehoton. Excel laittaa sinne kokonaisen joukon tavaroita, joita sen ei tarvitse laittaa sinne. Kyllä, jos tiesit, mitä olet tekemässä, voit suorittaa saman tehtävän puolella rivillä, jotka kulkevat 1,2 sekunnissa 3 sekunnin sijaan. MITÄ SITTEN? 3 sekuntia on paljon nopeampi kuin 30 minuuttia, jonka tehtävä olisi ottanut.

Joitakin muita vinkkejä aloittaville makrotallentimille:

  • Käytetty heittomerkki ilmaisee kommentin. VBA ei huomioi mitään heittomerkin jälkeen
  • Tämä on olio-ohjelmointi. Perussyntaksi on object.action. Jos olio-kääntäjä pelaa jalkapalloa, se sanoisi "ball.kick" potkaistakseen palloa. Joten "Selection.Cut" kehottaa tekemään "muokkaa> leikkaa" nykyisen valinnan.
  • Yllä olevassa esimerkissä alueen muokkaajat ovat suhteessa aktiiviseen soluun. Jos aktiivinen solu on B2: ssa ja sanot "ActiveCell.Range (" A1: C3 "). Valitse", valitset sitten 3 rivin 3 sarakealueen solusta B2 alkaen. Toisin sanoen valitset B2: D4. Sanomalla "ActiveCell.Range (" A1 ")" sanotaan, että 1 x 1 solualue valitaan aktiivisesta solusta alkaen. Tämä on uskomattoman turhaa. Se vastaa sanoa "ActiveCell.Select".
  • Tallenna työkirja ennen makron ensimmäistä käyttöä. Tällä tavalla, jos siinä on virhe ja tapahtuu jotain odottamatonta, voit sulkea tallentamatta ja palata takaisin tallennettuun versioon.

Toivottavasti tämä yksinkertainen esimerkki antaa sinulle aloitteleville makrotallentimille rohkeutta tallentaa yksinkertainen makro, kun seuraavan kerran suoritat toistuvan tehtävän Excelissä.

Mielenkiintoisia artikkeleita...