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

Un tutorial pentru începători despre scrierea macrocomenzilor VBA în Excel (și de ce ar trebui să înveți) / Productivitate

Macrourile Excel vă pot economisi o tură de timp prin automatizarea proceselor Excel pe care le utilizați frecvent Cum se înregistrează un macro în Excel 2016 Cum se înregistrează un macro în Excel 2016 Știați că puteți automatiza sarcini repetitive în Microsoft Excel utilizând macrocomenzi? Vă vom arăta cum să înregistrați o macrocomandă în Excel 2016 pentru a economisi o mulțime de timp. Citeste mai mult . Dar macrocomenzile sunt de fapt destul de limitate. Este ușor să faci o greșeală cu instrumentul de înregistrare, iar procesul de înregistrare este ciudat.

Utilizarea VBA pentru a crea macro-uri vă oferă o mult mai mare putere. Puteți spune Excel exact ce să facă ș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. (Microsoft a întrerupt Visual Basic în 2008, dar VBA continuă să fie puternic).

Din fericire pentru non-programatori, VBA este foarte simplu, iar interfața pe care o folosiți pentru ao edita oferă o mulțime de asistență. Multe dintre comenzile pe care le veți folosi sugestii pop-up și completări automate, vă ajută să obțineți script-ul dvs. de lucru rapid.

Totuși, VBA ia ceva timp să te obișnuiești.

Avantajele macrocomenzilor VBA în Excel

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

În loc să faceți clic în jurul foii de calcul și să înregistrați aceste clicuri, puteți accesa întreaga gamă de funcții și capabilități ale Excel. Trebuie doar să știi cum să le folosești.

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

Odată ce ați creat macrocomanda VBA, este ușor să o salvați și să o partajați, astfel încât oricine altcineva să poată profita de aceasta. Acest lucru este util în special atunci când lucrați cu o mulțime de oameni care au nevoie să facă aceleași lucruri și în Excel.

Să ne uităm la o macrocomandă VBA simplă pentru a vedea cum funcționează.

Un exemplu de macrocomandă VBA în Excel

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

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

Sub-Suma () Dim Sum1 ca dimensiune Dim Sum2 ca dimensiune dim Sum3 ca dimensiune Dim Sum4 ca monedă pentru fiecare celulă în intervalul ("C2: C51") Cell.Activate dacă IsEmpty (celula) apoi ieșire pentru if ActiveCell.Offset (0, -1) = 1 Atunci Sum1 = Sum1 + Celula.Value ElseIf ActiveCell.Offset (0, -1) = 2 Atunci Sum2 = Sum2 + Valoare celulară ElseIf ActiveCell.Offset (0, -1) = 3 Atunci Sum3 = Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Apoi Sum4 = Sum4 + Cell.Value Sfârșit Dacă următorul interval de celule ("F2") Valoare = Sum1 Range ("F3" F4 ") Valoare = Valoare Sum3 (" F5 ") Valoare = Sum4 End Sub

Acest lucru ar putea părea lung și complicat, dar îl vom rupe pentru a putea vedea elementele individuale și pentru a afla mai multe despre elementele de bază ale VBA.

Declararea Sub

La începutul modulului, avem “Sub StoreSales ()”. Acest lucru definește un nou sub denumit StoreSales.

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

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

Declararea variabilelor

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

Asa de “Dim Sum1” creează o nouă variabilă numită “sum1.” Cu toate acestea, trebuie să spunem Excel 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 lista completă în documentele de asistență ale Microsoft.

Deoarece macro-ul nostru VBA se ocupă de valute, folosim tipul de date valutar.

Declaratia “Dim Sum1 ca monedă” spune Excel să creeze o nouă variabilă valută numită Sum1. Fiecare variabilă pe care o declarați trebuie să aibă una “La fel de” declarație pentru a spune Excel tipul său.

Pornirea unui buclă For

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, verificați această explicație a buclelor Do-While Cum funcționează în timp ce circuitele lucrează în programarea computerelor Cum funcționează în timp ce circuitele lucrează în programarea calculatoarelor Buclele sunt unul dintre primele tipuri de control pe care le veți învăța în programare . Probabil știți despre timp și pentru bucle, dar ce realizează o buclă de timp? Citeste mai mult . În acest exemplu, folosim o buclă For, care este acoperită și în articol.

Iată ce arată bucla:

Pentru fiecare celula din gama ("C2: C51") [o gramada de chestii] Next Cell

Acest lucru îi spune Excel să repete prin celulele din intervalul specificat. Am folosit un obiect Range Înțelegerea celulelor Excel față de funcțiile din VBA Înțelegerea celulelor Excel față de funcțiile de domeniu în VBA Utilizarea funcțiilor Range și Cells din Excel poate deveni foarte confuză. Iată cum puteți să le folosiți în moduri pe care probabil nu le-ați imaginat niciodată, cu ajutorul VBA Read More, care este un tip specific de obiect în VBA. Când îl folosim în acest mod - Range (“C2: C51”) - îi spune lui Excel că ne interesează cele 50 de celule.

“Pentru fiecare” spune Excel că vom face ceva cu fiecare celulă din domeniu. “Următoarea celulă” vine după ce vrem să facem și îi spunem Excel să înceapă bucla de la început (începând cu celula următoare).

Avem de asemenea această afirmație: “Dacă IsEmpty (Celulă) Apoi Exit Pentru.”

Poti ghici ce face?

Notă: Strict vorbind, folosind o bucla In timp poate a fost o alegere mai buna 4 Greșeli pe care le puteți evita atunci când programați macro-uri Excel cu VBA 4 greșeli pe care le puteți evita atunci când programați Macro Excel cu VBA Codul simplu și macro-urile sunt cheile pentru superputeri Microsoft Excel. Chiar și non-programatorii pot adăuga cu ușurință funcționalități impresionante la foile lor de calcul cu Virtual Basics for Applications (VBA). Doar evitați aceste greșeli de programare începător! Citeste mai mult . Cu toate acestea, de dragul predării, am decis să folosesc o buclă pentru Exit.

Dacă-apoi-Else Declarații

Miezul acestei macrocomenzi este în declarațiile If-Then-Else. Iată secvența de afirmații condiționate:

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

În cea mai mare parte, probabil că puteți ghici ce fac aceste declarații. S-ar putea 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ă în partea stângă a celulei active.

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

Excel trece prin toate aceste afirmații în ordine. Dacă declarația condiționată Cum se utilizează instrucțiunile IF în Microsoft Excel Cum se utilizează instrucțiunile IF în Microsoft Excel Fie că sunteți expert expert sau începător de foaie de calcul, veți dori să consultați acest ghid pentru instrucțiunile IF din Excel. Citește mai mult este îndeplinită, completează instrucțiunea "Apoi". Dacă nu, se va muta în următoarea 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ționalități este ceea ce conduce această macrocomandă. Buclele spune Excel să treacă prin fiecare celulă din selecție, iar condiționările spun ce să facă cu acea celulă.

Scrierea valorilor celulelor

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

(F2) Valoare = Valoare Sum1 ("F3") Valoare = Valoare Sum2 ("F4") Valoare = Valoare Sum3 ("F5"

Cu “.Valoare” și un semn egal, fiecare dintre aceste celule se stabilește la valoarea uneia dintre variabilele noastre.

Si asta e! Spunem Excel că am terminat să scriem acest Sub cu “End Sub,” și macrocomanda VBA este completă.

Când rulam macroul cu macrocomenzi buton în Dezvoltator tab, obținem sumele:

Punerea împreună a blocurilor de construcție ale VBA în Excel

Când priviți mai întâi macrocomanda VBA de mai sus, pare destul de complexă. Dar, după ce l-am rupt în părțile componente, logica devine clară. Ca orice limbaj de scripting, este nevoie de timp să vă obișnuiți cu sintaxa VBA.

Dar, cu practica, veți construi vocabularul VBA și veți putea scrie macro-uri mai rapid, mai precis și cu mult mai multă putere decât le puteți înregistra vreodată.

Când rămâneți blocat, rularea unei căutări Google este o modalitate rapidă de a vă răspunde la întrebările VBA. Și referința Microsoft Excel VBA poate fi utilă dacă sunteți dispus să sapă prin ea pentru un răspuns tehnic.

Odată ce sunteți confortabil cu elementele de bază, puteți începe să utilizați VBA pentru lucruri cum ar fi trimiterea de e-mailuri din Excel, exportul de sarcini Outlook Cum să exportați sarcinile dvs. Outlook la Excel cu VBA Cum să exportați sarcinile dvs. Outlook la Excel cu VBA Fie că sunteți sau nu sunteți un fan al Microsoft, un lucru bun care se poate spune despre produsele MS Office, cel puțin, este cât de ușor este să le integrați pe fiecare dintre ele ... Citiți mai multe și afișând informațiile PC-ului dvs. Cum să vedeți toate informațiile despre PC utilizând o simplă Excel VBA Script Cum să vizualizați toate informațiile PC-ului dvs. Folosind un Excel Excel VBA Script Excel și 10 minute de lucru vă va oferi mai multe informații detaliate despre computerul decât credeți vreodată posibil. Sună prea bine pentru a fi adevărat? Asta e Windows, dacă știi cum să o folosești. Citeste mai mult .

.