Sådan køres en makro i Excel

Selvom det ikke er svært at køre en makro i Excel, er der mange måder at køre dem på. Nogle måder er beregnet til at gøre det lettere at bruge makroer, mens andre måder helt kan ændre den måde, en bruger interagerer med din projektmappe. I denne artikel vil vi dække nogle indlysende måder at køre makroer på, f.eks. Makrolisten og knapper, og nogle mere uklare måder som VB Editor og Events.

Først: Sørg for, at makroer er aktiveret

Excels sikkerhedsfunktioner deaktiverer som standard makroer. Når man åbner en makroaktiveret projektmappe, bliver brugerne typisk spurgt, om de vil aktivere makroer.

Hvis du ikke kan køre makroer, kan du prøve at følge disse instruktioner:

  • Gem projektmappen
  • Luk projektmappen, og åbn den igen
  • Når projektmappen indlæses, ser du en Sikkerhedsadvarsel prompt (billedet herunder). Klik på Aktiver indhold.

Kør en makro fra makrolisten

Du kan få adgang til en liste over makroer fra fanen Vis. Sådan får du vist denne liste:

  • Vælg Udsigt fane
  • Klik på knappen mærket Makroer for at få vist makrolisten

  • Vælg den makro, du vil køre på listen, og klik derefter på Løb knap

Du kan også når som helst vise makrolisten ved at trykke på ALT+F8.

Kør en makro ved hjælp af en tastaturgenvej

Du kan tildele en tastaturgenvej til en makro, som du ofte bruger, i form af CTRL+eller CTRL+SHIFT+. At gøre dette:

  • Få vist makrolisten (Udsigt > Makroereller ALT+F8)
  • Vælg den makro, du vil anvende en genvej til
  • Klik på Muligheder… at vise Makroindstillinger underdialog

  • I tekstboksen under Genvejstast, skriv et enkelt bogstav og klik derefter på Okay. Hvis du holder SHIFT -tasten nede, mens du skriver bogstavet, viser etiketten ved siden af ​​feltet SHIFT som en del af genvejen

BEMÆRK: det anbefales stærkt, at du bruger SHIFT, når du opretter en genvejstast! Excel bruger CTRL+ genveje til sig selv, f.eks. CTRL+C for at kopiere, eller CTRL+V for at gemme. Hvis du opretter en makrogenvej ved hjælp af disse eller andre Excel-genveje, overskriver du Excel-genvejen, indtil du tildeler makrogenvejen igen.

Kør en makro fra VB Editor

Makroer kan også køres fra VB Editor. VB Editor giver dig mulighed for at gennemgå en makros kode og foretage eventuelle ændringer, du ønsker, før du kører den.

Sådan kører du en makro i VB Editor:

  • Åbn VB Editor (fanen Udvikler> Visual Basic eller ALT+F11)

  • I Projekt vindue, dobbeltklik på modulet, der indeholder den makro, du vil teste
  • I modulets kodevindue, placer markøren hvor som helst på makroens kode mellem "Sub" og "End Sub"
  • Klik på Løb på værktøjslinjen, eller tryk på tastaturgenvej F5

Kør en makro ved hjælp af en knap eller form

Det er ofte nyttigt at have en kontrol på regnearket, som en bruger kan klikke for at køre en makro, f.eks. En knapkontrol eller en form. Dette er meget hurtigere for slutbrugere end at åbne lister over makroer eller grave gennem makrokode i VB Editor.

Information om, hvordan du opretter en klikbar knap eller form, kan findes her: Tilføj en knap, og tildel en makro i Excel.

Kør en makro automatisk ved hjælp af begivenheder i VBA

Det er muligt at få en makro til at køre, når der sker noget i Excel - for eksempel når en projektmappe åbnes, eller når en celleværdi ændres. Disse kaldes Begivenheder, og du kan skrive VBA -kode, så de kan ringe til makroer eller udføre andre operationer.

For at skrive kode til en begivenhed skal du bruge VB Editor. For eksempel at se begivenheder for projektmappen:

  • Åbn VB Editor (ALT+F11)
  • Dobbeltklik på Denne arbejdsbog objekt i VB Editor's Projektvindue
  • Vælg "Workbook" i rullemenuen øverst til venstre i kodevinduet
  • Klik på rullemenuen til højre for at se en liste over begivenheder

Følgende er en lille, men nyttig prøve af Excel -begivenheder, som du kan køre makroer fra.

Workbook_Open ()

Hændelsen Workbook_Open () udløses, når en projektmappe åbnes. Hvis du får sikkerhedsadvarslen efter at have åbnet en projektmappe, udløses denne begivenhed efter at have klikket på "Aktiver indhold".

12345 Private Sub Workbook_Open ()MsgBox "Arbejdsbog åbnet!"Afslut Sub

Workbook_BeforeClose (Annuller som boolsk)

Workbook_BeforeClose () udløses, når brugeren forsøger at lukke projektmappen. Det sker, før der kontrolleres for at se, om projektmappen skal gemmes.

Det Afbestille parameter kan indstilles til Sand for at stoppe projektmappen i at lukke.

123456789 Private Sub Workbook_BeforeClose (Annuller som boolsk)Hvis MsgBox ("Er du sikker?", VbYesNo + vbQuestion, "Luk") = vbNo SåAnnuller = SandtAfslut HvisAfslut Sub

Worksheet_Change (ByVal Target As Range)

Worksheet_Change () udløses, når værdien af ​​en celle ændres - uanset om den ændres af en makro, af en kopiér/indsæt -handling eller af et eksternt link. Det udløses dog ikke, når en værdi genberegnes via en formel.

Det Mål parameter repræsenterer de celler, hvis værdi er ændret.

Hvis du ændrer værdien af ​​andre celler inde i denne hændelse, starter hændelsen igen. Dette kan muligvis forårsage en uendelig sløjfe. Hvis du har brug for at ændre celleværdier uden at udløse denne hændelse, kan du overveje at indstille Application.EnableEvents til Falsk først og derefter sætte det tilbage til Sand ved afslutningen af ​​arrangementsproceduren.

123456789 Private Sub Worksheet_Change (ByVal Target As Range)MsgBox "Celler ændret:" & Target.AddressApplication.EnableEvents = FalskOmråde ("A2"). Værdi = Område ("A2"). Værdi + Target.Cells.CountApplication.EnableEvents = TrueAfslut Sub

Worksheet_SelectionChange (ByVal Target As Range)

Denne hændelse udløses, når der vælges forskellige celler med målretningskorset. Målparameteren repræsenterer de nye celler, der er blevet markeret.

Du kan også udløse denne begivenhed med kode, dvs. "Område (" A1 "). Vælg". Som med Worksheet_Change () skal du være forsigtig med at vælge andre celler inde i denne hændelse, da du kan forårsage en uendelig loop. Brug Application.EnableEvents.

123456789 Private Sub Worksheet_SelectionChange (ByVal Target As Range)Hvis Target.Address = "$ A $ 1" SåMsgBox "Markør i udgangsposition."Afslut HvisAfslut Sub

Stop en kørende makro

En kørende makro kan afbrydes ved at trykke på ESC eller CTRL+BREAK. Som standard viser en afbrudt makro følgende dialog:

Klikker Ende vil stoppe makroen, mens Blive ved vil genoptage det. Klikker Fejlfinde åbner makroen i VB Editor og fokuserer den kodelinje, som udførelsen blev sat på pause. (Inde i VB Editor kan du stoppe eller genoptage makroen ved hjælp af knapperne Kør eller Afslut på værktøjslinjen.)

Application.EnableCancelKey

Du kan deaktivere muligheden for at stoppe en makro med ESC eller CTRL+BREAK ved at indstille Application.EnableCancelKey ejendom. Denne ejendom har tre mulige værdier:

  • xlAfbryd - dette er standardværdien, som får Excel til at vise dialogen ovenfor
  • xlDeaktiveret - fjerner muligheden for at stoppe en kørende makro
  • xlErrorHandler - når der foretages et afbrydelsesforsøg, kastes der en fejl, der kan håndteres i kode

Når kodeudførelsen stopper, nulstiller Excel altid værdien af ​​Application.EnableCancelKey tilbage til xlAfbryd.

En god grund til at bruge denne ejendom er sikkerhed. For eksempel, hvis du havde en makro, der midlertidigt ubeskyttede dele af din projektmappe, kunne en bruger muligvis stoppe makroen lige efter afbeskyttelsen og få adgang til indhold, du ikke havde til hensigt at have dem. Ved at indstille Application.EnableCancelKey kan du helt deaktivere deres evne til at gøre dette eller håndtere deres afbrydelse yndefuldt med en fejlhåndterer, der genbeskytter projektmappen.

1234567891011 Sub UpdateBaseData (ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Beskyt "MyPassword"NewData.Copy målTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptAfslut Sub

Force-Close Excel med Windows Task Manager

Hvis makroen har 'hængt', eller Excel er blevet for travlt til at anerkende et afbrydelsesforsøg, skal du muligvis tvinge Luk Excel selv med Windows Jobliste. (BEMÆRK: hvis du gør dette, kan du miste alt arbejde, der ikke er gemt, og du skal stole på en automatisk gendannelsesversion af din projektmappe.)

  • Åbn Jobliste direkte ved hjælp af CTRL+SKIFT+ESC
  • Vælg "Processer"Fanen
  • Udvid elementet "Microsoft Excel" for at vise alle projektmapper
  • Vælg den projektmappe, du vil lukke, og klik derefter på Afslut opgaven i nederste højre hjørne

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave