Ieraksta modificēšana Palaist Excel makro - Excel padomi

Šis ir 19. nedēļas Excel padoms vietnē.com. Daudzi no Excel padomiem ietver kādu makro triku. Šonedēļ Excel lietotājiem, kuri nekad nav rakstījuši makro, es piedāvāju primeru par to, kā ierakstīt un pēc tam pielāgot noderīgu Excel makro.

Adreses datu paraugs

Pieņemsim, ka jums ir 400 adrešu datu rindas, kas līdzīgas augšējam attēlam kreisajā pusē. Nosaukuma lauks atrodas A slejā, ielas adrese B slejā un pilsēta C slejā.

Jūsu mērķis ir konvertēt datus vienā kolonnā, kā parādīts otrajā attēlā.

Šī vienkāršā problēma tiks izmantota, lai parādītu, kā ierakstīt, modificēt un pēc tam palaist vienkāršu makro.

Excel 95 lietotājiem: Pēc makro ierakstīšanas Excel ievietos jūsu makro jūsu darbgrāmatas lapā Module1. Jūs varat vienkārši noklikšķināt uz lapas, lai piekļūtu makro.

Lai gan šajā darblapā ir 400 ierakstu, es vēlos ierakstīt nelielu daļu no makro, kas rūpējas tikai par pirmo adresi. Makro pieņems, ka šūnu nosaukums ir uz pirmā vārda. Tas ievietos trīs tukšas rindas. Tas kopēs šūnu pa labi no sākotnējās šūnas uz šūnu zem sākotnējās šūnas. Tas kopēs pilsētas šūnu uz šūnu 2 rindas zem sākotnējās šūnas. Tad tam vajadzētu pārvietot šūnas rādītāju uz leju, lai tas būtu uz nākamā nosaukuma.

Galvenais ir izdomāt šo procesu pirms tā ierakstīšanas. Ierakstot makro, jūs nevēlaties pieļaut daudz kļūdu.

Tātad, ievietojiet šūnu rādītāju šūnā A1. Atveriet izvēlni un atlasiet Rīki> Makro> Ierakstīt jaunu makro. Dialoglodziņā Makro ierakstīšana tiek ieteikts makro1 nosaukums. Tas ir labi, tāpēc nospiediet OK.

Excel makro ierakstītājam ir viens ļoti stulbs noklusējuma iestatījums, kas jums noteikti jāmaina, lai šis makro darbotos. Programmā Excel 95 dodieties uz Rīki> Makro> Izmantot relatīvās atsauces Programmā Excel 97-2003 noklikšķiniet uz otrās ikonas rīkjoslas Pārtraukt ierakstīšanu. Ikona izskatās kā maza darblapa. Sarkanā šūna C3 norāda uz citu sarkano šūnu A3. Ikonu sauc par relatīvo atsauci. Kad šī ikona ir ieslēgta, ikonu ieskauj kāda krāsa. Ikona atceras pēdējo iestatījumu no pašreizējās Excel sesijas, tāpēc, iespējams, nāksies uz tā pāris reizes noklikšķināt, lai noskaidrotu, kura metode ir ieslēgta vai nē. Programmā Excel 2007 izmantojiet skatu - makro - izmantojiet relatīvās atsauces.

Labi, mēs esam gatavi doties. Veiciet šīs darbības:

  • Vienreiz nospiediet lejupvērsto bultiņu, lai pārietu uz šūnu B1.
  • Turiet nospiestu taustiņu Shift un divreiz nospiediet lejupvērsto bultiņu, lai atlasītu 2., 3. un 4. rindu
  • Izvēlnē atlasiet Ievietot, pēc tam atlasiet Rindas, lai ievietotu trīs tukšas rindas.
  • Lai pārietu uz šūnu B2, nospiediet augšupvērsto bultiņu un pēc tam labo bultiņu.
  • Nospiediet Ctrl X, lai sagrieztu šūnu B2.
  • Nospiediet lejupvērsto bultiņu, kreiso bultiņu, pēc tam nospiediet Ctrl V, lai ielīmētu šūnā A2.
  • Nospiediet augšupvērsto bultiņu, labo bultiņu, labo bultiņu, Ctrl X, kreiso bultiņu, kreiso bultiņu, lejupvērsto bultiņu, lejupvērsto bultiņu, Ctrl V, lai pārvietotu C1 līdz A3.
  • Divreiz nospiediet lejupvērsto bultiņu, lai šūnas rādītājs tagad būtu nākamais nosaukums A5 rindā.
  • Lai pārtrauktu makro ierakstīšanu, rīkjoslā noklikšķiniet uz ikonas "Pārtraukt ierakstīšanu".

Nu, jūs esat ierakstījis savu pirmo makro. Apskatīsim. Atveriet Rīki> Makro> Makro. Sarakstā iezīmējiet Macro1 un nospiediet pogu Rediģēt. Jums vajadzētu redzēt kaut ko tādu, kas izskatās šādi.

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, ja jūs neesat programmētājs, tas, iespējams, izskatās diezgan biedējoši. Neļaujiet tam būt. Ja ir kaut kas, ko jūs nesaprotat, ir lieliska palīdzība. Noklikšķiniet uz kursora atslēgvārdā Offset un nospiediet F1. Ja esat instalējis VBA palīdzības failu, jūs redzēsiet palīdzības tēmu atslēgvārdam Offset. Palīdzība norāda paziņojuma sintaksi. Tajā teikts, ka tas ir Offset (RowOffset, ColumnOffset). Joprojām nav ļoti skaidrs? Palīdzības augšdaļā meklējiet zaļo pasvītroto vārdu "piemērs". Excel VBA piemēri ļaus jums uzzināt, kas notiek. Ofseta piemērā teikts, ka šūna tiek aktivizēta divas rindas zem un trīs rindas pa labi no pašreizējās šūnas.

ActiveCell.Offset(3, 2).Activate

Labi, tāpēc tas ir pavediens. Funkcija “nobīde” ir veids, kā pārvietoties pa Excel izklājlapu. Ņemot vērā šo mazliet informācijas, jūs varat redzēt, ko makro dara. Pirmais nobīde (1, 0) ir vieta, kur mēs pārvietojām cellpointer uz leju līdz A2. Nākamais nobīde ir vieta, kur mēs pārvietojāmies uz augšu vienā rindā (-1 rindā) un pāri 1 kolonnai. Makro jūs, iespējams, nesaprotat neko citu, bet tas joprojām ir noderīgs.

Atgriezieties Excel darblapā. Ievietojiet šūnas rādītāju šūnā A5. Izvēlieties Rīki> Makro> Makro> Makro1> Palaist. Makro darbojas, un jūsu otrā adrese ir formatēta.

Iespējams, jūs sakāt, ka atlasīt visu šo lielo komandu virkni ir grūtāk, nekā tikai formatēt ar rokām. Labi, pēc tam veiciet Rīki> Makro> Makro> Opcijas. Saīsnes lodziņā sakiet, ka Ctrl + w ir šī makro īsinājumtaustiņš. Noklikšķiniet uz Labi, pēc tam noraidiet Makro dialoglodziņu ar Atcelt. Tagad, nospiežot taustiņu Ctrl w, makro darbosies. Adresi var formatēt ar vienu taustiņu.

Vai esat gatavs lielajam laikam? Cik jums ir atlicis adreses? Es pāris reizes nospiedu taustiņu Ctrl wa, tāpēc man ir palikuši 395. Atgriezieties pie sava makro. Mēs ievietosim visu makro kodu cilpā. Pirms makro koda pirmās rindas ievietojiet jaunu rindiņu, kurā teikts "Darīt līdz activecell.value =" "". Pirms rindas End Sub ievietojiet līniju, kurā teikts “Loop”. Do cilpa izpildīs visu starp līniju Do un Loop, līdz tā nonāks tukšā rindā. Makro tagad izskatās šādi:

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

Atgriezieties savā Excel lapā. Uzlieciet šūnu rādītāju uz nākamā vārda. Nospiediet taustiņu Ctrl w, un makro pēc dažām sekundēm formatēs visus jūsu ierakstus.

Excel grāmatu autori saka, ka, ierakstot makro, jūs nevarat izdarīt neko noderīgu. Nav taisnība! Personai, kurai vajadzēja izgriezt un ielīmēt 800 reizes, šis makro ir ļoti noderīgs. Lai ierakstītu un pielāgotu, vajadzēja dažas minūtes. Jā, profesionāli programmētāji norādīs, ka kods ir šausmīgi neefektīvs. Excel tajā ievieto veselu kaudzi lietu, kas tai nav jāievieto. Jā, ja jūs zinātu, ko darāt, jūs varat paveikt to pašu uzdevumu ar pusi līniju, kas darbosies 1,2 sekundēs, nevis 3 sekundēs. NU KAS? 3 sekundes ir daudz ātrāk nekā uzdevuma 30 minūtes.

Daži citi padomi makro ierakstītāju sākšanai:

  • Izmantotais apostrofs norāda komentāru. VBA ignorē visu pēc apostrofu
  • Tā ir objektorientēta programmēšana. Pamata sintakse ir object.action. Ja objekta orientēts kompilators spēlētu futbolu, tam būtu jāsaka "ball.kick", lai spertu bumbu. Tātad "Selection.Cut" saka, lai pašreizējā atlasē veiktu "edit> cut".
  • Iepriekš minētajā piemērā diapazona modifikatori ir saistīti ar aktīvo šūnu. Ja aktīvā šūna atrodas B2 un jūs sakāt "ActiveCell.Range (" A1: C3 "). Atlasiet", tad jūs atlasāt 3 rindas pa 3 kolonnas apgabalu, sākot no šūnas B2. Citiem vārdiem sakot, jūs izvēlaties B2: D4. Sakot "ActiveCell.Range (" A1 ")", tiek teikts, ka atlasiet 1 x 1 šūnu diapazonu, sākot ar aktīvo šūnu. Tas ir neticami lieks. Tas ir līdzvērtīgs vārda "ActiveCell.Select" teikšanai.
  • Saglabājiet darbgrāmatu pirms makro pirmās palaišanas. Tādā veidā, ja tajā ir kļūda un izdarīts kaut kas negaidīts, varat aizvērt, nesaglabājot un atgriezties saglabātajā versijā.

Cerams, ka šis vienkāršais piemērs dos iesācēju makro ierakstītājiem drosmi ierakstīt vienkāršu makro nākamajā reizē, kad jums būs atkārtots uzdevums, kas jāveic programmā Excel.

Interesanti raksti...