Makro ierakstītāja izmantošana programmā Microsoft Excel

Satura rādītājs:

Anonim

Atveriet programmu Excel un VBE (Visual Basic Editor). Ja vien tas nav mainīts, VBE logā ir Projektu pētnieks logs un Rekvizīti logs (tiem var piekļūt no Skatīt izvēlne).

Projekta pētnieks: Darbojas kā failu pārvaldnieks. Palīdz pārvietoties pa kodu savā darbgrāmatā.

Rekvizītu logs: Parāda pašlaik aktīvā objekta rekvizītus (piem. 1. lapa) no pašreizējās darbgrāmatas (piem.1. grāmata).

Šajā rakstā mēs uzzināsim, cik vienkārša ir makro ierakstīšana programmā Excel.

1. uzdevums: makro ierakstīšana.

Šis uzdevums parāda, kas notiek, ierakstot makro, un parāda atšķirību starp absolūto un relatīvo atsauču ierakstīšanu.

1. Tukšā darblapā jaunā darbgrāmatā atlasiet šūnu C10

2. Sāciet Makro ierakstītājs ar iespēju saglabāt makro Šī darba grāmata. Šajā brīdī VBE izveido jaunu Moduļi mape. Doties uz to ir diezgan droši - jūsu darbības netiks ierakstītas. Noklikšķiniet uz [+] blakus mapei un redzēt, ka VBE mapē ievieto moduli un nosauca to 1. modulis. Veiciet dubultklikšķi uz moduļa ikonas, lai atvērtu tā koda logu. Pārslēdzieties atpakaļ uz Excel.

3. Pārliecinieties, vai Relatīvā atsauce pogu uz Pārtrauciet ierakstīšanu rīkjosla NAV nospiesta.

4. Atlasiet šūnu B5 un apturiet ierakstītāju.

5. Pārslēdzieties uz VBE un apskatiet kodu:

Diapazons ("B5"). Izvēlieties

6. Tagad ierakstiet citu makro, tieši tādā pašā veidā, bet šoreiz ar Relatīvā atsauce poga ir nospiesta.

7. Pārslēdzieties uz VBE un apskatiet kodu:

ActiveCell.Offset (-5, -1). Diapazons ("A1"). Izvēlieties

8. Tagad ierakstiet citu makro, bet tā vietā, lai atlasītu šūnu B5, atlasiet šūnu bloku 3x3, sākot ar B5 (atlasiet šūnas B5: F7)

9. Pārslēdzieties uz VBE un apskatiet kodu:

ActiveCell.Offset (-5, -1). Diapazons ("A1: B3"). Izvēlieties

10. Atskaņojiet makro, vispirms atlasot citu šūnu nekā C10 (Macro2 un Macro3 sākuma šūnai jābūt 6. rindā vai zemāk - skatīt 11. darbību tālāk)

Makro 1 - vienmēr pārvieto izvēli uz B5
Makro2 - pārvieto atlasi uz šūnu 5 rindas uz augšu un 1 kolonnu pa kreisi no atlasītās šūnas.
Makro3 - vienmēr izvēlas sešu šūnu bloku, sākot ar 5 rindām uz augšu un 1 kolonnu pa kreisi no atlasītās šūnas.

11. Palaidiet Macro2, bet piespiediet kļūdu, atlasot šūnu 5. rindā vai augstāk. Makro mēģina atlasīt neeksistējošu šūnu, jo tā kods liek izvēlēties šūnu 5 rindas virs sākuma punkta, un tas atrodas lapas augšpusē. Nospiediet Atkļūdot jāpārskaita uz makro daļu, kas izraisīja problēmu.

PIEZĪME. Kad VBE ir atkļūdošanas režīmā, koda, kas izraisīja problēmu, ir iezīmēta dzeltenā krāsā. Lai varētu turpināt, makro ir "jāatiestata". Noklikšķiniet uz Atiestatīt pogu VBE rīkjoslā vai dodieties uz Palaist> Atiestatīt. Dzeltenais izgaismojums pazūd un VBE iziet no atkļūdošanas režīma.

12. Ir svarīgi mēģināt paredzēt šādu lietotāja kļūdu. Vienkāršākais veids ir modificēt kodu, lai vienkārši ignorētu kļūdas un pārietu pie nākamā uzdevuma. Dariet to, pievienojot rindiņu…

Par kļūdu Atsākt nākamo

… Tieši virs makro pirmās rindas (zem rindas Sub Macro1 ()

13. Skrien Makro2 tāpat kā iepriekš, sākot pārāk augstu uz lapas. Šoreiz ievadītā rindiņa liek programmai Excel ignorēt koda rindiņu, kuru tā nevar izpildīt. Kļūdas ziņojuma nav, un makro iziet, darot visu iespējamo. Izmantojiet šo kļūdu apstrādes metodi piesardzīgi. Tas ir ļoti vienkāršs makro. Sarežģītāks makro, visticamāk, nedarbotos, kā paredzēts, ja kļūdas vienkārši ignorētu. Turklāt lietotājam nav ne jausmas, ka kaut kas ir nogājis greizi.

14. Mainīt kodu Makro2 lai iekļautu sarežģītāku kļūdu apstrādātāju:

Papildu makro2 ()

Par kļūdu GoTo ErrorHandler

ActiveCell.Offset (-5, -1). Diapazons ("A1"). Izvēlieties

Iziet no apakšnodaļas

ErrorHandler:

MsgBox "Jums jāsāk zem 5. rindas"

Beigt apakš

15. Šoreiz lietotājam tiek parādīts dialoglodziņš, kad kaut kas noiet greizi. Ja nav kļūdas, rindiņa Exit Sub liek makro pabeigt pēc tam, kad tas ir paveicis savu darbu - pretējā gadījumā lietotājs redzēs ziņojumu pat tad, ja nebūtu kļūdas.

Ierakstīto makro uzlabošana

Labs veids, kā apgūt VBA pamatus, ir ierakstīt makro un redzēt, kā Excel raksta savu kodu. Tomēr nereti ierakstītajos makro satur daudz vairāk koda, nekā nepieciešams. Šie vingrinājumi parāda, kā varat uzlabot un racionalizēt ierakstītā makro izveidoto kodu.

2. uzdevums: Ierakstīto makro uzlabošana

Šis vingrinājums parāda, ka, ierakstot makro, bieži tiek ģenerēts vairāk kodu nekā nepieciešams. Tas parāda paziņojuma Ar izmantošanu izmantošanu koda precizēšanai.

1. Atlasiet jebkuru šūnu vai šūnu bloku.

2. Palaidiet makro ierakstītāju un izsauciet makro FormatCells. Relatīvo atsauču iestatījumam nebūs nozīmes.

3. Dodieties uz Formāts> Šūnas> Fonts un izvēlēties Times New Roman un sarkans.
Iet uz Raksti un izvēlēties Dzeltens.
Iet uz Izlīdzināšana un izvēlēties Horizontāli, centrā
Iet uz Skaitlis un izvēlēties Valūta.

4. Noklikšķiniet uz labi un apturiet ierakstītāju.

5. Noklikšķiniet uz Atsaukt pogu (vai Ctrl+Z), lai atsauktu izmaiņas darblapā.

6. Atlasiet šūnu bloku un palaidiet FormatCells makro. Ņemiet vērā, ka to nevar atsaukt! Ievadiet šūnas, lai pārbaudītu formatēšanas rezultātu.

7. Apskatiet kodu:

ApakšformātsSelection ()

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

Ar atlasi

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = Nepareizi

.Orientācija = 0

.ShrinkToFit = Nepareizi

.MergeCells = Nepareizi

Beigt ar

Ar Selection.Font

.Name = "Times New Roman"

.FontStyle = "Parasts"

.Izmērs = 10

.Pārsvītrojums = Nepareizs

.Superscript = Nepareizi

.Subscript = Nepareizi

.OutlineFont = Nepareizs

.Ēna = nepatiesa

.Underline = xlUnderlineStyleNone

.ColorIndex = 3

Beigt ar

Ar atlasi. Interjers

.ColorIndex = 6

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

Beigt ar

Beigt apakš

Mainiet fontu uz Times New Roman
Mainiet fonta krāsu uz sarkans
Mainiet aizpildījuma krāsu uz Dzeltens
Noklikšķiniet uz Centrs pogu
Noklikšķiniet uz Valūta pogu

13. Paskaties uz kodu. Jūs joprojām saņemat daudzas lietas, kuras jūs ne vienmēr vēlaties. Excel ieraksta visu noklusējuma iestatījumi. Lielāko daļu no tiem var droši izdzēst.

14. Eksperimentējiet ar rediģēšanu tieši kodā, lai mainītu krāsas, fontu, ciparu formātu utt.

3. uzdevums: noskatieties makro ierakstīšanu

Šis vingrinājums parāda, ka jūs varat mācīties, vērojot makro ierakstīšanu tā ierakstīšanas laikā. Tas ir arī piemērs tam, ka dažreiz paziņojums Ar nav piemērots.

1. Atveriet failu VBA01.xls.

Lai gan šī darblapa ir vizuāli kārtībā un lietotājam saprotama, tukšas šūnas var radīt problēmas. Mēģiniet filtrēt datus un redzēt, kas notiek. Iet uz Dati> Filtrs> Automātiskais filtrs un filtrējiet pēc reģiona vai mēneša. Ir skaidrs, ka Excel neizdara tādus pašus pieņēmumus kā lietotājs. Tukšās šūnas ir jāaizpilda.

2. Pārklājiet Excel un VBE logus (vertikāli) tā, lai tie būtu blakus.

3. Datos atlasiet jebkuru šūnu. Ja tā ir tukša šūna, tai jābūt blakus šūnai, kurā ir dati.

4. Palaidiet makro ierakstītāju un izsauciet makro FillEmptyCells. Iestatīt ierakstīšanai Relatīvās atsauces.

5. Logā VBE atrodiet un veiciet dubultklikšķi uz pašreizējās darbgrāmatas moduļa (Module1), lai atvērtu rediģēšanas rūti, pēc tam izslēdziet logu Project Explorer un logu Rekvizīti (tikai, lai atbrīvotu vietu).

6. Ierakstiet jauno makro šādi:

1. darbība. Ctrl+* (lai izvēlētos pašreizējo reģionu)
2. solis. Rediģēt> Atvērt> Īpašs> Tukšas vietas> Labi (lai atlasītu visas tukšās šūnas pašreizējā reģionā)
3. solis. Ierakstiet = [Augšupvērsta bulta] tad nospiediet Ctrl+Enter (lai ievietotu rakstīšanu visās atlasītajās šūnās)
4. solis. Ctrl+* (lai vēlreiz atlasītu pašreizējo reģionu)
5. solis. Ctrl+C (lai kopētu atlasi - derēs jebkura metode)
6. darbība. Rediģēt> Īpaši ielīmēt> Vērtības> Labi (lai ielīmētu datus atpakaļ tajā pašā vietā, bet atmestu formulas)
7. solis. Esc (lai izietu no kopēšanas režīma)
8. solis. Pārtrauciet ierakstīšanu.

7. Apskatiet kodu:

Sub FillEmptyCells ()

Atlase. Pašreizējais reģions. Atlasīt

Selection.SpecialCells (xlCellTypeBlanks). Atlasiet

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

Selection.CurrentRegion.Select

Atlase. Kopēt

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

Nepareizi, transponēt: = Nepareizi

Application.CutCopyMode = Nepareizs

Beigt apakš

8. Ievērojiet atstarpes un pasvītras “_” izmantošanu, lai apzīmētu vienas koda rindiņas sadalīšanu jaunā rindā. Bez šī Excel kodu uzskatītu par diviem atsevišķiem paziņojumiem.

9. Tā kā šis makro ir ierakstīts ar labi pārdomātām komandām, ir maz nevajadzīga koda. Iekš Īpaša ielīmēšana visu pēc vārda “xlValues” var izdzēst.

10. Izmēģiniet makro. Pēc tam izmantojiet AutoFilter rīku un atzīmējiet atšķirību.