Použitie záznamu makra v programe Microsoft Excel

Obsah:

Anonim

Otvorte Excel a VBE (editor jazyka Visual Basic). Pokiaľ to nebolo zmenené, okno VBE obsahuje Prieskumník projektu okno a Vlastnosti okno (je k nim prístup z vyhliadka Ponuka).

Prieskumník projektu: Funguje ako správca súborov. Pomáha vám orientovať sa v kóde v zošite.

Okno vlastností: Zobrazuje vlastnosti aktuálne aktívneho objektu (napr. List 1) aktuálneho pracovného zošita (napr.Kniha 1).

V tomto článku sa dozvieme, aké ľahké je nahrávanie makier v programe Excel.

Cvičenie 1: Nahrávanie makra.

Toto cvičenie ukazuje, čo sa stane, keď je zaznamenané makro, a ukazuje rozdiel medzi zaznamenaním absolútnych a relatívnych referencií.

1. Na prázdnom pracovnom hárku v novom zošite vyberte bunku C10

2. Spustite súbor Záznamník makra s možnosťou uložiť makro do formátu Tento zošit. V tomto mieste VBE vytvára nový Moduly priečinok. Je celkom bezpečné ísť sa na to pozrieť - vaše akcie nebudú zaznamenané. Kliknite na [+] vedľa priečinka a zistite, že VBE má do priečinka umiestnený modul a pomenuje ho Modul1. Dvojitým kliknutím na ikonu modulu otvoríte okno s kódom. Prepnúť späť do Excelu.

3. Uistite sa, že Relatívna referencia tlačidlo na Zastaviť nahrávanie panel s nástrojmi NIE je stlačený.

4. Vyberte bunku B5 a zastavte rekordér.

5. Prepnite na VBE a pozrite sa na kód:

Rozsah („B5“). Vyberte

6. Teraz zaznamenajte ďalšie makro, úplne rovnakým spôsobom, ale tentokrát s príponou Relatívna referencia stlačené tlačidlo.

7. Prepnite na VBE a pozrite sa na kód:

ActiveCell.Offset (-5, -1). Rozsah ("A1"). Vyberte

8. Teraz zaznamenajte ďalšie makro, ale namiesto výberu bunky B5 vyberte blok buniek 3x3 začínajúci na B5 (vyberte bunky B5: F7)

9. Prepnite na VBE a pozrite sa na kód:

ActiveCell.Offset (-5, -1). Rozsah ("A1: B3"). Vyberte

10. Prehrajte makrá, pričom ste najskôr vybrali inú bunku ako C10 (pre Macro2 a Macro3 musí byť počiatočná bunka v riadku 6 alebo nižšom - pozri krok 11 nižšie)

Makro 1 - vždy presunie výber na B5
Makro2 - presunie výber do bunky o 5 riadkov nahor a 1 stĺpček vľavo od vybratej bunky.
Makro3 - vždy vyberie blok šiestich buniek začínajúcich o 5 riadkov vyššie a 1 stĺpček naľavo od vybratej bunky.

11. Spustite Macro2, ale vynútite si chybu výberom bunky v riadku 5 alebo vyššom. Makro sa pokúša vybrať neexistujúcu bunku, pretože jej kód hovorí, aby vybrala bunku 5 riadkov nad počiatočným bodom, a to mimo hornej časti listu. Stlačte Ladiť sa presunie do časti makra, ktorá spôsobila problém.

POZNÁMKA: Keď je VBE v režime ladenia, riadok kódu, ktorý spôsobil problém, je zvýraznený žltou farbou. Predtým, ako budete môcť pokračovať, musíte makro „resetovať“. Kliknite na Resetovať na paneli s nástrojmi VBE alebo prejdite na Spustiť> Obnoviť. Žlté zvýraznenie zmizne a VBE vyjde z režimu ladenia.

12. Je dôležité pokúsiť sa predvídať chyby používateľov, ako je táto. Najjednoduchším spôsobom je upraviť kód tak, aby chyby jednoducho ignoroval a prešiel na ďalšiu úlohu. Vykonajte to pridaním riadka …

Pri chybe Pokračovať Ďalej

… bezprostredne nad prvým riadkom makra (pod riadkom Sub Macro1 ()

13. Bež Makro2 ako predtým, začínajúc príliš vysoko na hárku. Tentoraz riadok, ktorý ste zadali, hovorí Excelu, aby ignoroval riadok kódu, ktorý nemôže vykonať. Neexistuje žiadne chybové hlásenie a makro skončí, keď urobí všetko, čo môže. Tento spôsob zaobchádzania s chybami používajte opatrne. Toto je veľmi jednoduché makro. Zložitejšie makro by pravdepodobne nefungovalo podľa očakávania, keby boli chyby jednoducho ignorované. Používateľ tiež netuší, že sa niečo pokazilo.

14. Upravte kód Makro2 zahrnúť sofistikovanejší nástroj na spracovanie chýb takto:

Sub Macro2 ()

Pri chybe GoTo ErrorHandler

ActiveCell.Offset (-5, -1). Rozsah ("A1"). Vyberte

Ukončiť sub

ErrorHandler:

MsgBox „Musíte začať pod riadkom 5“

Koniec pod

15. Tentoraz sa používateľovi zobrazí dialógové okno, keď sa niečo pokazí. Ak nie je žiadna chyba, riadok Exit Sub spôsobí, že sa makro dokončí po dokončení svojej úlohy - v opačnom prípade by sa používateľovi zobrazila správa, aj keby nedošlo k chybe.

Vylepšovanie zaznamenaných makier

Dobrý spôsob, ako sa naučiť základy VBA, je zaznamenať makro a zistiť, ako Excel píše svoj vlastný kód. Zaznamenané makrá však často obsahujú oveľa viac kódu, ako je potrebné. Nasledujúce cvičenia ukazujú, ako môžete vylepšiť a zefektívniť kód vytvorený zaznamenaným makrom.

Cvičenie 2: Zlepšenie zaznamenaných makier

Toto cvičenie ukazuje, že keď sa zaznamenávajú makrá, často sa vygeneruje viac kódu, ako je potrebné. Ukazuje použitie príkazu With na spresnenie kódu.

1. Vyberte ľubovoľnú bunku alebo blok buniek.

2. Spustite záznam makra a zavolajte makro FormatCells. Nastavenie Relatívne referencie nebude relevantné.

3. Choďte na Formát> Bunky> Písmo a vyber si Times New Roman a Červená.
Ísť do Vzory a vyber si žltá.
Ísť do Zarovnanie a vyber si Horizontálne, stredové
Ísť do Číslo a vyber si Mena.

4. Kliknite na OK a zastavte rekordér.

5. Kliknite na Vrátenie späť tlačidlo (alebo Ctrl+Z.), aby ste mohli vrátiť späť zmeny v pracovnom hárku.

6. Vyberte blok buniek a spustite príkaz FormatCells makro. Upozorňujeme, že to nie je možné vrátiť späť! Zadajte výsledok do buniek a skontrolujte výsledok formátovania.

7. Pozrite sa na kód:

Podformátový výber ()

Selection.NumberFormat = "$#, ## 0,00"

S výberom

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = Nepravda

.Orientácia = 0

.ShrinkToFit = Nepravda

.MergeCells = False

Ukončiť s

S výberom. Písmo

.Name = "Times New Roman"

.FontStyle = "Bežné"

.Veľkosť = 10

.Strikethrough = False

.Superscript = nepravda

.Predpis = nepravda

.OutlineFont = False

.Shadow = False

.Underline = xlUnderlineStyleNone

.ColorIndex = 3

Ukončiť s

S výberom. Interiér

.ColorIndex = 6

. Vzor = xlSolid

.PatternColorIndex = xlAutomatic

Ukončiť s

Koniec pod

Zmeňte písmo na Times New Roman
Zmeňte farbu písma na Červená
Zmeňte farbu výplne na žltá
Kliknite na Stred tlačidlo
Kliknite na Mena tlačidlo

13. Pozrite sa na kód. Stále máte veľa vecí, ktoré nechcete. Excel zaznamenáva všetky predvolené nastavenie. Väčšinu z nich je možné bezpečne odstrániť.

14. Experimentujte s úpravami priamo v kóde, aby ste zmenili farby, písmo, formát čísla atď.

Cvičenie 3: Sledujte zaznamenávanie makra

Toto cvičenie ukazuje, že sa môžete učiť tým, že sledujete vytváranie makier počas ich záznamu. Je to tiež príklad toho, že niekedy nie je príkaz With vhodný.

1. Otvorte súbor VBA01.xls.

Aj keď je tento pracovný hárok vizuálne v poriadku a používateľ mu môže porozumieť, prítomnosť prázdnych buniek môže spôsobovať problémy. Skúste údaje filtrovať a uvidíte, čo sa stane. Ísť do Údaje> Filter> Automatický filter a filtrovať podľa oblasti alebo mesiaca. Je zrejmé, že Excel nevytvára rovnaké predpoklady ako používateľ. Prázdne bunky je potrebné vyplniť.

2. Dlaždice okien programu Excel a VBE (vertikálne) dajte vedľa seba.

3. Vyberte ľubovoľnú bunku v údajoch. Ak ide o prázdnu bunku, musí susediť s bunkou obsahujúcou údaje.

4. Spustite záznam makra a zavolajte makro FillEmptyCells. Nastaviť na záznam Relatívne referencie.

5. V okne VBE vyhľadajte a dvakrát kliknite na modul (Modul1) pre aktuálny zošit, čím sa otvorí tabla úprav, potom vypnite okno Prieskumník projektu a okno Vlastnosti (iba aby ste uvoľnili miesto).

6. Zaznamenajte nové makro nasledovne:

Krok 1. Ctrl+* (na výber aktuálnej oblasti)
Krok 2. Upraviť> Prejsť na> Špeciálne> Prázdne miesta> OK (na výber všetkých prázdnych buniek v aktuálnej oblasti)
Krok 3. Napíšte = [UpArrow] potom stlačte Ctrl+Enter (aby ste zadali text do všetkých vybratých buniek)
Krok 4. Ctrl+* (znova vybrať aktuálnu oblasť)
Krok 5. Ctrl+C. (skopírovať výber - postačí akákoľvek metóda)
Krok 6. Upraviť> Prilepiť špeciálne> Hodnoty> OK (vložiť údaje späť na rovnaké miesto, ale zahodiť vzorce)
Krok 7. Esc (vyjsť z režimu kopírovania)
Krok 8. Zastavte nahrávanie.

7. Pozrite sa na kód:

Sub FillEmptyCells ()

Selection.CurrentRegion.Select

Selection.SpecialCells (xlCellTypeBlanks). Vyberte

Selection.FormulaR1C1 = "= R [-1] C"

Selection.CurrentRegion.Select

Výber. Kopírovať

Selection.PasteSpecial Paste: = xlValues, Prevádzka: = xlNone, SkipBlanks: = _

Falošné, transponovať: = Falošné

Application.CutCopyMode = False

Koniec pod

8. Všimnite si použitia medzery a podčiarkovníka „_“ na označenie rozdelenia jedného riadka kódu na nový riadok. Bez tohto by Excel považoval kód za dva samostatné príkazy.

9. Pretože toto makro bolo zaznamenané pomocou premyslených príkazov, existuje málo nepotrebného kódu. V Prilepiť špeciálne všetko za slovom „xlValues“ je možné odstrániť.

10. Skúste makro. Potom použite nástroj AutoFilter a všimnite si rozdiel.