Cum se execută o macro în Excel

Deși rularea unei macrocomenzi în Excel nu este dificilă, există multe modalități de a le rula. Unele moduri sunt menite să ușureze utilizarea macro-urilor, în timp ce alte moduri pot schimba modul în care un utilizator interacționează în întregime cu registrul dvs. de lucru. În acest articol vom aborda câteva modalități evidente de a rula macrocomenzile, cum ar fi lista de macrocomenzi și comenzile Buton, și unele moduri mai obscure, cum ar fi Editorul VB și Evenimente.

Mai întâi: asigurați-vă că macro-urile sunt activate

Funcțiile de securitate Excel vor dezactiva macro-urile în mod prestabilit. La deschiderea unui registru de lucru pentru macro, utilizatorilor li se solicită, de obicei, dacă doresc să activeze macro-urile.

Dacă nu puteți rula macrocomenzi, încercați să urmați aceste instrucțiuni:

  • Salvați registrul de lucru
  • Închideți registrul de lucru, apoi deschideți-l din nou
  • Când se încarcă registrul de lucru, veți vedea un Avertizare de securitate prompt (în imaginea de mai jos). Clic Activați conținutul.

Rulați o macro din lista de macrocomenzi

O listă de macrocomenzi poate fi accesată din fila Vizualizare. Pentru a vizualiza această listă:

  • Selectează Vedere filă
  • Faceți clic pe butonul etichetat Macrocomenzi pentru a afișa lista Macro

  • Selectați macrocomanda pe care doriți să o rulați din listă, apoi faceți clic pe Alerga buton

De asemenea, puteți afișa Lista Macro în orice moment apăsând ALT + F8.

Rulați o macro utilizând o comandă rapidă de la tastatură

Puteți atribui o comandă rapidă de la tastatură unui macro pe care îl utilizați des, sub formă de CTRL + sau CTRL + SHIFT +. Pentru a face acest lucru:

  • Afișați lista de macrocomenzi (Vedere > Macrocomenzisau ALT + F8)
  • Selectați macrocomanda la care doriți să aplicați o comandă rapidă
  • Clic Opțiuni… pentru a arăta Opțiuni macro sub-dialog

  • În caseta de text de sub Scurtătură, tastați o singură literă și apoi faceți clic pe Bine. Dacă țineți apăsată tasta SHIFT în timp ce tastați litera, eticheta de lângă casetă va afișa SHIFT ca parte a comenzii rapide

NOTĂ: este foarte recomandat să utilizați SHIFT atunci când creați o tastă de comandă rapidă! Excel folosește comenzi rapide CTRL + pentru sine, de ex. CTRL + C pentru a copia sau CTRL + V pentru a salva. Dacă creați o comandă rapidă macro utilizând aceste sau alte comenzi rapide Excel, veți suprascrie comanda rapidă Excel până când veți aloca din nou comanda rapidă macro.

Rulați o macro din Editorul VB

Macrocomenzile pot fi rulate și din Editorul VB. Editorul VB vă permite să revizuiți codul unei macrocomenzi și să faceți orice modificări doriți înainte de a-l rula.

Pentru a rula o macro în Editorul VB:

  • Deschideți editorul VB (fila Dezvoltator> Visual Basic sau ALT + F11)

  • În Proiect fereastra, faceți dublu clic pe modulul care conține macrocomanda pe care doriți să o testați
  • În fereastra de cod a modulului, plasați cursorul oriunde pe codul macrocomenzii între „Sub” și „End Sub”
  • Apasă pe Alerga de pe bara de instrumente sau apăsați comanda rapidă de la tastatură F5

Rulați o macro utilizând un buton sau o formă

Este adesea util să aveți un control pe foaia de lucru pe care un utilizator poate face clic pentru a rula o macro, cum ar fi un control Buton sau o formă. Acest lucru este mult mai rapid pentru utilizatorii finali decât deschiderea listelor de macrocomenzi sau căutarea prin codul macro în Editorul VB.

Informații despre cum să creați un buton sau o formă care poate fi făcută clic pot fi găsite aici: Adăugați un buton și atribuiți un macro în Excel.

Rulați automat o macro utilizând Evenimente în VBA

Este posibil să faceți o macro să ruleze atunci când se întâmplă ceva în Excel - de exemplu, când este deschis un registru de lucru sau când se modifică valoarea unei celule. Acestea sunt numite Evenimente, și puteți scrie cod VBA pentru ca acestea să apeleze macrocomenzi sau să efectueze alte operații.

Pentru a scrie cod pentru un eveniment, va trebui să utilizați Editorul VB. De exemplu, pentru a vizualiza evenimente pentru registrul de lucru:

  • Deschideți editorul VB (ALT + F11)
  • Faceți dublu clic pe Acest manual de lucru obiect în editorul VB Fereastra proiectului
  • Alegeți „Cartea de lucru” din meniul derulant din partea stângă sus a ferestrei de cod
  • Faceți clic pe meniul drop-down din dreapta pentru a vedea o listă de evenimente

Următoarele sunt un eșantion mic, dar util de evenimente Excel din care ați putea rula macrocomenzi.

Workbook_Open ()

Evenimentul Workbook_Open () se declanșează când este deschis un registru de lucru. Dacă primiți avertismentul de securitate după deschiderea unui registru de lucru, acest eveniment se declanșează după ce faceți clic pe „Activați conținutul”.

12345 Private Sub Workbook_Open ()MsgBox "Caiet de lucru deschis!"Sfârșitul Sub

Workbook_BeforeClose (Anulați ca boolean)

Workbook_BeforeClose () se declanșează atunci când utilizatorul încearcă să închidă registrul de lucru. Se întâmplă înainte de efectuarea oricărei verificări pentru a vedea dacă registrul de lucru trebuie salvat.

The Anulare parametrul poate fi setat la True pentru a opri închiderea registrului de lucru.

123456789 Private Sub Workbook_BeforeClose (Anulați ca boolean)Dacă MsgBox („Ești sigur?”, VbYesNo + vbQuestion, „Close”) = vbNo AtunciAnulare = AdevăratEnd IfSfârșitul Sub

Foaie de lucru_Change (țintă ByVal ca interval)

Worksheet_Change () se declanșează atunci când valoarea unei celule este modificată - indiferent dacă este modificată printr-o macro, printr-o operație de copiere / lipire sau printr-un link extern. Totuși, nu se declanșează atunci când o valoare este recalculată printr-o formulă.

The Ţintă parametrul reprezintă celulele a căror valoare s-a schimbat.

Dacă modificați valoarea altor celule din acest eveniment, evenimentul se va declanșa din nou. Acest lucru poate provoca o buclă infinită. Dacă trebuie să modificați valorile celulei fără a declanșa acest eveniment, luați în considerare setarea Application.EnableEvents la Fals mai întâi, apoi setați-l din nou la Adevărat la sfârșitul procedurii evenimentului.

123456789 Foaie de lucru sub privat_Change (țintă ByVal ca interval)MsgBox "Celulele s-au schimbat:" & Target.AddressApplication.EnableEvents = FalsRange ("A2"). Value = Range ("A2"). Value + Target.Cells.CountApplication.EnableEvents = AdevăratSfârșitul Sub

Worksheet_SelectionChange (țintă ByVal ca interval)

Acest eveniment se declanșează ori de câte ori sunt selectate diferite celule cu reticulul de direcționare. Parametrul Țintă reprezintă noile celule care au fost selectate.

Puteți declanșa acest eveniment și cu cod, adică „Range („ A1 ”). Selectați”. Ca și în Worksheet_Change (), ar trebui să aveți grijă la selectarea altor celule din acest eveniment, deoarece puteți provoca o buclă infinită. Utilizați Application.EnableEvents.

123456789 Private Sub Worksheet_SelectionChange (ByVal Target As Range)Dacă Target.Address = "$ A $ 1" AtunciMsgBox „Cursorul în poziția de origine”.End IfSfârșitul Sub

Opriți o macro care rulează

O macro care rulează poate fi întreruptă apăsând ESC sau CTRL + PAUZĂ. În mod implicit, o macrocomandă întreruptă va afișa următorul dialog:

Dând clic Sfârșit va opri macro-ul, în timp ce Continua o va relua. Dând clic Depanare va deschide macro-ul în Editorul VB și va focaliza linia de cod pe care a fost întreruptă execuția. (În interiorul Editorului VB puteți opri sau relua macro folosind butoanele Run sau End de pe bara de instrumente.)

Application.EnableCancelKey

Puteți dezactiva capacitatea de a opri o macro cu ESC sau CTRL + BREAK setând Application.EnableCancelKey proprietate. Această proprietate are trei valori posibile:

  • xlInterrupt - aceasta este valoarea implicită, ceea ce face ca Excel să afișeze dialogul de mai sus
  • xlDisabled - elimină capacitatea de a opri o macrocomandă care rulează
  • xlErrorHandler - când se face o încercare de întrerupere, se aruncă o eroare care poate fi tratată în cod

Ori de câte ori se oprește executarea codului, Excel resetează întotdeauna valoarea Application.EnableCancelKey înapoi la xlInterrupt.

Un motiv bun pentru utilizarea acestei proprietăți este securitatea. De exemplu, dacă aveți o macrocomandă care să neprotejeze temporar părți din registrul dvs. de lucru, un utilizator ar putea opri macrocomanda imediat după neprotejare și avea acces la conținut pe care nu ați intenționat să îl aibă. Setând Application.EnableCancelKey, le puteți dezactiva complet capacitatea de a face acest lucru sau le puteți gestiona întreruperea cu grație cu un Handler de erori care protejează din nou registrul de lucru.

1234567891011 Sub UpdateBaseData (ByVal NewData as Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Defectați „Parola mea”NewData.Copy TargetTarget.Worksheet.Protect „Parola mea”Application.EnableCancelKey = xlInterruptSfârșitul Sub

Închideți forța Excel cu Managerul de activități Windows

Dacă macrocomanda a „atârnat” sau Excel a devenit prea ocupat pentru a recunoaște o încercare de întrerupere, poate fi necesar să închideți forțat Excel cu Managerul de activități Windows. (NOTĂ: dacă faceți acest lucru, puteți pierde orice lucru nesalvat și va trebui să vă bazați pe o versiune de recuperare automată a registrului dvs. de lucru.)

  • Deschideți Task Manager direct folosind CTRL + SHIFT + ESC
  • Selectează "Procese”Fila
  • Extindeți elementul „Microsoft Excel” pentru a afișa toate registrele de lucru
  • Selectați registrul de lucru pe care doriți să îl închideți, apoi faceți clic pe Terminați sarcina în colțul din dreapta jos

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave