Un tutorial pentru începători despre scrierea macro-urilor VBA în Excel (și de ce ar trebui să înveți)

Un tutorial pentru începători despre scrierea macro-urilor VBA în Excel (și de ce ar trebui să înveți)

Macro-urile Excel vă pot economisi o grămadă de timp automatizarea proceselor Excel pe care le utilizați des . Dar macro-urile sunt de fapt destul de limitate. Este ușor să greșești cu instrumentul de înregistrare, iar procesul de înregistrare este incomod.





Utilizarea VBA pentru a crea macrocomenzi vă oferă mult mai multă putere. Puteți spune Excel exact ce să faceți și cum să o faceți. De asemenea, aveți acces la mai multe funcții și capabilități. Dacă utilizați Excel în mod regulat, merită să învățați cum să creați macrocomenzi VBA.





Vom începe cu elementele de bază.





Ce este VBA?

VBA este Visual Basic pentru aplicații , un limbaj de programare pe care îl puteți utiliza în multe aplicații Microsoft. Visual Basic este un limbaj de programare, iar VBA este versiunea specifică aplicației acestuia. (Microsoft a întrerupt Visual Basic în 2008, dar VBA continuă să fie puternic).

Din fericire pentru neprogramatori, VBA este foarte simplu, iar interfața pe care o utilizați pentru a o edita oferă multă asistență. Multe dintre comenzile pe care le veți folosi vor apărea sugestii pop-up și completări automate, ajutându-vă să faceți ca scriptul dvs. să funcționeze rapid.



Totuși, VBA durează ceva timp să se obișnuiască.

Avantajele macro-urilor VBA în Excel

Dacă VBA este mai dificil decât înregistrarea unui macro, de ce l-ați folosi? Răspunsul scurt este că obțineți mult mai multă putere din macro-urile VBA.





În loc să faceți clic pe foaia de calcul și să înregistrați aceste clicuri, puteți accesa gama completă de funcții și capabilități Excel. Trebuie doar să știi cum să le folosești.

descărcați orice videoclip de pe orice site

Și odată ce vă simțiți mai confortabil cu VBA, puteți face toate lucrurile pe care le-ați putea face într-un macro obișnuit în mult mai puțin timp. Rezultatele vor fi, de asemenea, mai previzibile, așa cum spuneți Excel exact ce sa fac. Nu există deloc ambiguitate.





Odată ce ați creat macro-ul VBA, este ușor să îl salvați și să îl partajați, astfel încât oricine altcineva să poată profita de acesta. Acest lucru este util mai ales atunci când lucrați cu o mulțime de oameni care trebuie să facă aceleași lucruri în Excel.

Să ne uităm la un macro VBA simplu pentru a vedea cum funcționează.

Un exemplu de macro VBA în Excel

Să ne uităm la o macro simplă. Foaia noastră de calcul conține numele angajaților, numărul magazinului în care lucrează angajații și vânzările lor trimestriale.

Această macrocomandă va adăuga vânzările trimestriale din fiecare magazin și va scrie totalurile respective în celulele din foaia de calcul (dacă nu sunteți sigur cum să accesați dialogul VBA, verificați pasajul nostru VBA aici ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

Acest lucru ar putea părea lung și complicat, dar îl vom descompune, astfel încât să puteți vedea elementele individuale și să aflați puțin despre elementele de bază ale VBA.

Declararea Sub

La începutul modulului, avem „Sub StoreSales ()”. Aceasta definește un nou sub denumit StoreSales.

De asemenea, puteți defini funcții --- diferența este că funcțiile pot returna valori, iar subs nu (dacă sunteți familiarizați cu alte limbaje de programare, subs sunt echivalentul metodelor). În acest caz, nu este nevoie să returnăm o valoare, așa că folosim un sub.

La sfârșitul modulului, avem „End Sub”, care spune Excel că am terminat cu această macro VBA.

Declararea variabilelor

Primele linii de cod din scriptul nostru încep cu „Dim”. Dim este comanda VBA pentru declararea unei variabile.

Deci „Dim Sum1” creează o nouă variabilă numită „Sum1”. Cu toate acestea, trebuie să îi spunem Excelului ce fel de variabilă este aceasta. Trebuie să alegem un tip de date. Există multe tipuri de date diferite în VBA --- puteți găsi listă completă în documentele de ajutor ale Microsoft .

Deoarece macro-ul nostru VBA va avea de-a face cu monede, folosim tipul de date valutare.

Declarația „Dim Sum1 Ca Monedă” îi spune lui Excel să creeze o nouă variabilă Monedă numită Sum1. Fiecare variabilă pe care o declarați trebuie să aibă o declarație „Ca” pentru a spune tipului Excel.

Lansarea unui For Loop

Buclele sunt unele dintre cele mai puternice lucruri pe care le puteți crea în orice limbaj de programare. Dacă nu sunteți familiarizați cu buclele, consultați această explicație a buclelor Do-While. În acest exemplu, folosim o buclă For, care este, de asemenea, tratată în articol.

Iată cum arată bucla:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Aceasta îi spune Excel să itereze prin celulele din intervalul specificat de noi. Am folosit un Obiectul Range , care este un tip specific de obiect în VBA. Când îl folosim în acest fel --- Interval ('C2: C51') --- îi spune lui Excel că suntem interesați de acele 50 de celule.

„Pentru fiecare” îi spune Excel că vom face ceva cu fiecare celulă din interval. „Celula următoare” vine după tot ce vrem să facem și îi spune lui Excel să înceapă bucla de la început (începând cu următoarea celulă).

De asemenea, avem această afirmație: „Dacă IsEmpty (Cell), atunci ieșiți pentru.”

Poți ghici ce face?

Notă: Strict vorbind, utilizarea unei bucle While poate a fost o alegere mai bună . Cu toate acestea, de dragul predării, am decis să folosesc o buclă For cu o ieșire.

poți amesteca și potrivi mărci de berbeci

Declarații If-Then-Else

Nucleul acestei macro speciale se află în declarațiile If-Then-Else. Iată secvența noastră de afirmații condiționale:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

În cea mai mare parte, probabil puteți ghici ce fac aceste afirmații. Este posibil să nu fiți familiarizați cu ActiveCell.Offset, totuși. „ActiveCell.Offset (0, -1)” spune Excel să se uite la celula care este o coloană la stânga celulei active.

În cazul nostru, asta îi spune lui Excel să consulte coloana cu numărul magazinului. Dacă Excel găsește un 1 în această coloană, atunci ia conținutul celulei active și îl adaugă la Sum1. Dacă găsește un 2, adaugă conținutul celulei active la Sum2. Si asa mai departe.

Excel parcurge toate aceste declarații în ordine. Dacă Declarație condiționată este mulțumit, completează declarația Then. Dacă nu, se mută în următorul ElseIf. Dacă ajunge până la capăt și niciuna dintre condiții nu a fost îndeplinită, nu va lua nicio măsură.

Combinația dintre buclă și condiționali este cea care conduce această macro. Bucla îi spune Excel să treacă prin fiecare celulă din selecție, iar condiționalii îi spun ce să facă cu acea celulă.

Scrierea valorilor celulei

În cele din urmă, ajungem să scriem rezultatele calculelor noastre în celule. Iată liniile pe care le folosim pentru a face acest lucru:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

Cu „.Value” și un semn egal, setăm fiecare dintre aceste celule la valoarea uneia dintre variabilele noastre.

Si asta e! Îi spunem Excel că am terminat de scris acest Sub cu „End Sub” și că macrocomanda VBA este completă.

Când rulăm macro-ul cu Macrocomenzi butonul din Dezvoltator filă, obținem sumele noastre:

Unirea elementelor de bază ale VBA în Excel

Când vă uitați la macrocomanda VBA de mai sus, pare destul de complexă. Dar, după descompunerea ei în părțile sale constitutive, logica devine clară. Ca orice limbaj de script, este nevoie de timp pentru a vă obișnui cu sintaxa VBA.

Dar, cu practică, vă veți construi vocabularul VBA și veți putea scrie macrocomenzi mai rapid, mai precis și cu mult mai multă putere decât le-ați putea înregistra vreodată.

Când rămâneți blocat, efectuarea unei căutări Google este o modalitate rapidă de a primi răspuns la întrebările dvs. VBA. Și Referința Microsoft VBA Excel vă poate fi de ajutor dacă sunteți dispus să o căutați pentru un răspuns tehnic.

Odată ce vă simțiți confortabil cu elementele de bază, puteți începe să utilizați VBA pentru lucruri precum trimiterea de e-mailuri din Excel , exportarea sarcinilor Outlook și afișarea informațiilor despre computer.

de ce este atât de lent lte-ul meu?
Acțiune Acțiune Tweet E-mail Iată de ce FBI a emis un avertisment pentru Hive Ransomware

FBI a emis un avertisment cu privire la o tulpină deosebit de urâtă de ransomware. Iată de ce trebuie să fiți deosebit de atenți la ransomware-ul Hive.

Citiți în continuare
Subiecte asemănătoare
  • Productivitate
  • Foaie de calcul
  • Microsoft Excel
  • Microsoft Office 2016
  • Macrocomenzi
  • Tutoriale de codare
Despre autor Apoi Albright(506 articole publicate)

Dann este un consultant în strategie de conținut și marketing care ajută companiile să genereze cerere și clienți potențiali. De asemenea, el blogează despre strategie și marketing de conținut la dannalbright.com.

Mai multe de la Dann Albright

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona