Makrosalvesti kasutamine Microsoft Excelis

Lang L: none (table-of-contents):

Anonim

Avage Excel ja VBE (Visual Basic Editor). Kui seda pole muudetud, sisaldab VBE aken Projektiuurija aken ja Omadused aken (neile pääseb juurde Vaade menüü).

Projekti uurija: Töötab nagu failihaldur. Aitab teil töövihiku koodis ringi liikuda.

Atribuutide aken: Näitab praegu aktiivse objekti omadusi (nt Leht1) praegusest töövihikust (nt.1. raamat).

Selles artiklis õpime, kui lihtne on makro salvestamine Excelis.

Harjutus 1: Makro salvestamine.

See harjutus näitab, mis juhtub makro salvestamisel, ning näitab erinevust absoluutsete ja suhteliste viidete salvestamise vahel.

1. Uue töövihiku tühjal töölehel valige lahter C10

2. Käivitage Makrosalvesti koos makro salvestamise võimalusega See töövihik. Sel hetkel loob VBE uue Moodulid kausta. Seda on üsna turvaline minna vaatama - teie toiminguid ei salvestata. Klõpsake [+] kausta kõrval ja vaadake, et VBE -l on kausta moodul ja sellele nimi pandud Moodul 1. Koodiakna avamiseks topeltklõpsake mooduli ikooni. Lülituge tagasi Excelile.

3. Veenduge, et Suhteline viide nuppu nupul Lõpetage salvestamine tööriistariba EI vajutata.

4. Valige lahter B5 ja peata salvesti.

5. Lülituge VBE -le ja vaadake koodi:

Vahemik ("B5"). Valige

6. Nüüd salvestage teine ​​makro täpselt samamoodi, kuid seekord koos Suhteline viide nupp sisse vajutatud.

7. Lülitu VBE -le ja vaata koodi:

ActiveCell.Offset (-5, -1). Vahemik ("A1"). Valige

8. Nüüd salvestage teine ​​makro, kuid lahtri B5 valimise asemel valige lahtrite plokk 3x3, alustades B5 -st (valige lahtrid B5: F7)

9. Lülituge VBE -le ja vaadake koodi:

ActiveCell.Offset (-5, -1). Vahemik ("A1: B3"). Valige

10. Taasesitage makrosid, valides esmalt mõne muu lahtri kui C10 (Macro2 ja Macro3 puhul peab lähtelaht olema reas 6 või allpool - vt allpool 11. sammu)

Makro1 - nihutab valiku alati B5 -le
Makro2 - teisaldab valiku lahtrisse 5 rida üles ja 1 veergu valitud lahtrist vasakule.
Makro3 - valib alati kuue lahtri ploki, alustades 5 rida üles ja 1 veerust valitud lahtrist vasakul.

11. Käivitage Macro2, kuid sundige viga, valides lahtri realt 5 või üle selle. Makro proovib valida olematut lahtrit, kuna selle kood käsib valida lahtri 5 rida alguspunktist kõrgemal ja see on lehe ülaosast väljas. Vajutage Silumine tuleb viia selle makroosa juurde, mis probleemi põhjustas.

MÄRKUS. Kui VBE on silumisrežiimis, on probleemi põhjustanud koodirida kollasega esile tõstetud. Enne jätkamist peate makro "lähtestama". Klõpsake Lähtesta nuppu VBE tööriistaribal või minge Käivita> Lähtesta. Kollane esiletõstmine kaob ja VBE väljub silumisrežiimist.

12. Oluline on proovida sellist kasutajate viga ette näha. Lihtsaim viis on koodi muuta, et lihtsalt vigu eirata ja liikuda järgmise ülesande juurde. Tehke seda, lisades rea…

Vea korral Jätka järgmist

… Vahetult makro esimese rea kohal (rea Sub Macro1 () all)

13. Jookse Makro2 nagu varemgi, alustades lehelt liiga kõrgelt. Seekord käsib teie sisestatud rida Excelil ignoreerida koodirida, mida see ei saa täita. Veateadet pole ja makro väljub, olles teinud kõik endast oleneva. Kasutage seda vigade käsitlemise meetodit ettevaatlikult. See on väga lihtne makro. Keerulisem makro ei toimiks ilmselt ootuspäraselt, kui vigu lihtsalt eirataks. Samuti pole kasutajal aimugi, et midagi on valesti läinud.

14. Muutke koodi Makro2 lisada keerukam veakäitleja:

Alammakro2 ()

Viga GoTo ErrorHandler

ActiveCell.Offset (-5, -1). Vahemik ("A1"). Valige

Välju sub

ErrorHandler:

MsgBox "Peate alustama allapoole 5. rida"

End Sub

15. Seekord kuvatakse kasutajale dialoogiboks, kui midagi läheb valesti. Kui viga ei ole, paneb rida Exit Sub makro lõpule pärast seda, kui see on oma töö teinud - vastasel korral näeks kasutaja teadet isegi siis, kui viga poleks.

Salvestatud makrode täiustamine

Hea viis VBA põhitõdede õppimiseks on makro salvestamine ja vaadata, kuidas Excel oma koodi kirjutab. Sageli sisaldavad salvestatud makrod siiski palju rohkem koodi kui vaja. Järgmised harjutused näitavad, kuidas saate salvestatud makro loodud koodi täiustada ja sujuvamaks muuta.

Harjutus 2: Salvestatud makrode parandamine

See harjutus näitab, et makrode salvestamisel genereeritakse sageli rohkem koodi kui vaja. See näitab lause With kasutamist koodi täpsustamiseks.

1. Valige ükskõik milline lahter või lahtrite plokk.

2. Käivitage makrosalvesti ja helistage makrole FormatCells. Seade Suhtelised viited ei ole asjakohased.

3. Minge aadressile Vorming> Lahtrid> Font ja valida Times New Roman ja Punane.
Minema Mustrid ja valida Kollane.
Minema Joondamine ja valida Horisontaalne, keskel
Minema Number ja valida Valuuta.

4. Klõpsake nuppu Okei ja peata salvesti.

5. Klõpsake nuppu Võta tagasi nuppu (või Ctrl+Z) töölehe muudatuste tagasivõtmiseks.

6. Valige lahtrite plokk ja käivitage FormatCells makro. Pange tähele, et seda ei saa tagasi võtta! Vormindamise tulemuse kontrollimiseks tippige lahtrid.

7. Vaata koodi:

AlamvormingSelection ()

Selection.NumberFormat = "$#, ## 0.00"

Valikuga

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlPõhi

.WrapText = Vale

.Suund = 0

.ShrinkToFit = Vale

.MergeCells = Vale

Lõpeta

Valikuga. Font

.Name = "Times New Roman"

.FontStyle = "Tavaline"

.Suurus = 10

. Läbikriipsutus = vale

.Superscript = Vale

.Subscript = Vale

.OutlineFont = Vale

.Varju = vale

.Underline = xlUnderlineStyleNone

.ColorIndex = 3

Lõpeta

Valikuga. Interjöör

.ColorIndex = 6

.Muster = xlTahke

.PatternColorIndex = xlAutomaatiline

Lõpeta

End Sub

Muutke font väärtuseks Times New Roman
Muutke fondi värv väärtuseks Punane
Muutke täitmisvärviks Kollane
Klõpsake Keskus nuppu
Klõpsake Valuuta nuppu

13. Vaata koodi. Saate endiselt palju asju, mida te tingimata ei taha. Excel salvestab kõik vaikimisi seaded. Enamikku neist on ohutu kustutada.

14. Katsetage redigeerimist otse koodi, et muuta värve, fonti, numbrivormingut jne.

Harjutus 3: vaadake makro salvestamist

See harjutus näitab, et saate õppida, vaadates makro koostamist salvestamise ajal. See on ka näide sellest, kui mõnikord pole lause With sobiv.

1. Avage fail VBA01.xls.

Kuigi see tööleht on visuaalselt korras ja kasutajale arusaadav, võivad tühjad lahtrid põhjustada probleeme. Proovige andmeid filtreerida ja vaadake, mis juhtub. Minema Andmed> Filter> Autofilter ja filtreerige piirkonna või kuu järgi. On selge, et Excel ei tee samu eeldusi nagu kasutaja. Tühjad lahtrid tuleb täita.

2. Paanige Exceli ja VBE aknad (vertikaalselt) nii, et need oleksid kõrvuti.

3. Valige andmete suvaline lahter. Kui see on tühi lahter, peab see olema andmeid sisaldava lahtri kõrval.

4. Käivitage makrosalvesti ja helistage makrole FillEmptyCells. Seadistage salvestamiseks Suhtelised viited.

5. Leidke ja topeltklõpsake VBE aknas redigeerimispaani avamiseks praeguse töövihiku moodulit (Moodul1), seejärel lülitage Project Exploreri aken ja atribuutide aken välja (ainult ruumi saamiseks).

6. Salvestage uus makro järgmiselt.

Samm 1. Ctrl+* (praeguse piirkonna valimiseks)
2. samm. Muuda> Ava> Spetsiaalne> Toorikud> OK (praeguse piirkonna kõigi tühjade lahtrite valimiseks)
Samm 3. Tüüp = [Ülesnool] seejärel vajutage Ctrl+Enter (sisestades trükkimise kõikidesse valitud lahtritesse)
4. samm. Ctrl+* (praeguse piirkonna uuesti valimiseks)
5. samm. Ctrl+C (valiku kopeerimiseks - sobib iga meetod)
6. samm. Muuda> Kleebi eri> Väärtused> OK (andmete kleepimiseks tagasi samasse kohta, kuid valemitest loobumine)
Samm 7. Esc (kopeerimisrežiimist väljumiseks)
Samm 8. Lõpetage salvestamine.

7. Vaata koodi:

Sub FillEmptyCells ()

Selection.CurrentRegion.Select

Selection.SpecialCells (xlCellTypeBlanks). Valige

Valik.Vormel R1C1 = "= R [-1] C"

Selection.CurrentRegion.Select

Valik. Kopeeri

Selection.PasteSpecial Paste: = xlValues, Operation: = xlNone, SkipBlanks: = _

Vale, ülevõtmine: = vale

Application.CutCopyMode = Vale

End Sub

8. Pange tähele tühiku ja alljoone “_” kasutamist, et tähistada ühe koodirida jagunemist uuele reale. Ilma selleta käsitleks Excel koodi kahe eraldi avaldusena.

9. Kuna see makro on salvestatud läbimõeldud käskudega, on tarbetut koodi vähe. Aastal Kleebi spetsiaalne kõik pärast sõna “xlValues” saab kustutada.

10. Proovige makro. Seejärel kasutage tööriista AutoFilter ja märkige erinevus.