Algaja õpetus VBA -makrode kirjutamiseks Excelis (ja miks peaksite õppima)

Algaja õpetus VBA -makrode kirjutamiseks Excelis (ja miks peaksite õppima)

Exceli makrod võivad säästa palju aega sageli kasutatavate Exceli protsesside automatiseerimine . Kuid makrod on tegelikult üsna piiratud. Salvestustööriistaga on lihtne viga teha ja salvestusprotsess on ebamugav.





VBA kasutamine makrode loomiseks annab teile palju rohkem jõudu. Saate Excelile täpselt öelda, mida ja kuidas teha. Samuti saate juurdepääsu paljudele muudele funktsioonidele ja võimalustele. Kui kasutate Excelit regulaarselt, tasub õppida VBA -makrode loomist.





Alustame põhitõdedest.



Mis on VBA?

VBA on Visual Basic for Applications , programmeerimiskeelt, mida saate kasutada paljudes Microsofti rakendustes. Visual Basic on programmeerimiskeel ja VBA on selle rakendusepõhine versioon. (Microsoft lõpetas Visual Basicu juba 2008. aastal, kuid VBA on endiselt tugev).

Mitteprogrammeerijate õnneks on VBA väga lihtne ja selle redigeerimiseks kasutatav liides pakub palju abi. Paljud käsud, mida kasutate, ilmuvad hüpiksoovitustele ja automaatsele täitmisele, aidates teil skripti kiiresti tööle panna.



Sellegipoolest võtab VBA harjumine aega.

VBA makrode eelised Excelis

Kui VBA on makro salvestamisest keerulisem, siis miks peaksite seda kasutama? Lühike vastus on see, et saate VBA makrodest palju rohkem energiat.





Selle asemel, et arvutustabelis ringi klõpsata ja neid klikke salvestada, pääsete juurde Exceli kõikidele funktsioonidele ja võimalustele. Peate lihtsalt teadma, kuidas neid kasutada.

kuidas skannida dokumente iPhone'is

Ja kui olete VBA -ga rohkem rahul, saate teha kõik asjad, mida tavalise makroga teha, palju vähem aega. Tulemused on ka prognoositavamad, nagu te Excelile ütlete täpselt mida teha. Mingit ebaselgust pole.





Kui olete oma VBA makro loonud, on seda lihtne salvestada ja jagada, nii et kõik teised saaksid seda kasutada. See on eriti kasulik, kui töötate paljude inimestega, kes peavad Excelis samu asju tegema.

Vaatame lihtsat VBA makro, et näha, kuidas see toimib.

VBA makro näide Excelis

Vaatame lihtsat makro. Meie arvutustabel sisaldab töötajate nimesid, poe numbrit, kus töötajad töötavad, ja nende kvartalimüüki.

See makro lisab iga poe kvartalimüügi ja kirjutab need kogusummad arvutustabeli lahtritesse (kui te pole kindel, kuidas VBA dialoogile juurde pääseda, vaadake meie VBA ülevaade siin ):

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

See võib tunduda pikk ja keeruline, kuid me jagame selle, et saaksite näha üksikuid elemente ja õppida natuke VBA põhitõdesid.

Subi deklareerimine

Mooduli alguses on meil 'Sub StoreSales ()'. See määratleb uue alamosa nimega StoreSales.

Samuti saate määratleda funktsioone --- erinevus seisneb selles, et funktsioonid võivad väärtusi tagastada ja alamad mitte (kui olete kursis teiste programmeerimiskeeltega, on alammeetodid meetoditega samaväärsed). Sel juhul ei pea me väärtust tagastama, seega kasutame alammärki.

Mooduli lõpus on meil 'End Sub', mis ütleb Excelile, et oleme selle VBA makroga valmis.

Muutujate deklareerimine

Meie skripti esimesed koodiridad algavad tähega Dim. Dim on VBA käsk muutuja deklareerimiseks.

Seega loob 'Dim Sum1' uue muutuja nimega 'Sum1'. Siiski peame Excelile ütlema, mis tüüpi muutuja see on. Peame valima andmetüübi. VBA-s on palju erinevaid andmetüüpe-leiate selle täielik loetelu Microsofti abidokumentides .

Kuna meie VBA makro hakkab tegelema valuutadega, kasutame andmetüüpi Valuuta.

Väide „Sum Sum1 kui valuuta” käsib Excelil luua uue valuuta muutuja nimega Sum1. Igal deklareeritud muutujal peab Exceli tüübi kohta olema avaldis „As”.

Loopi käivitamine

Silmused on mõned kõige võimsamad asjad, mida saate luua mis tahes programmeerimiskeeles. Kui te pole silmustega tuttav, vaadake seda Do-While-silmuste selgitust. Selles näites kasutame silmus For, mida käsitletakse ka artiklis.

Silmus näeb välja järgmine:

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

See käsib Excelil meie määratud vahemiku lahtreid läbi korrata. Oleme kasutanud a Vahemiku objekt , mis on VBA -s teatud tüüpi objekt. Kui kasutame seda sel viisil --- Vahemik ('C2: C51') --- ütleb see Excelile, et oleme huvitatud nendest 50 lahtrist.

„Iga jaoks” ütleb Excelile, et me teeme iga vahemiku lahtriga midagi. „Järgmine lahter” järgneb kõigele, mida tahame teha, ja käsib Excelil alustada tsüklit algusest (alustades järgmisest lahtrist).

Meil on ka see avaldus: 'Kui IsEmpty (Cell), siis välju.'

Kas võite arvata, mida see teeb?

Märge: Rangelt võttes võib -olla kasutada paremat valikut . Siiski otsustasin õpetamise huvides kasutada For -loop koos Exitiga.

kuidas kontrollida, kas teie facebook on häkkinud

Kui-siis-muud avaldused

Selle konkreetse makro tuum on lausetes If-then-Else. Siin on meie tingimuslausete jada:

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

Enamasti võite ilmselt arvata, mida need avaldused teevad. Te ei pruugi ActiveCelliga tuttav olla. Siiski nihutage. „ActiveCell.Offset (0, -1)” käsib Excelil vaadata lahtrit, mis asub aktiivsest lahtrist üks veerg vasakul.

Meie puhul ütleb see Excelile, et ta vaatab kaupluse numbri veergu. Kui Excel leiab sellest veerust 1, võtab see aktiivse lahtri sisu ja lisab selle summale 1. Kui see leiab 2, lisab see Sum2 -le aktiivse lahtri sisu. Ja nii edasi.

Excel läbib kõik need avaldused järjekorras. Kui tingimuslik avaldus on rahul, täidab see avalduse Siis. Kui ei, liigub see järgmisesse ElseIfi. Kui see jõuab lõpuni ja ükski tingimus pole täidetud, ei võta ta midagi ette.

Silmuse ja tingimuslike tingimuste kombinatsioon juhib seda makro. Silmus käsib Excelil valiku iga lahtri läbi käia ja tingimuslikud juhised ütlevad, mida selle lahtriga teha.

Rakuväärtuste kirjutamine

Lõpuks saame kirjutada oma arvutuste tulemused lahtritesse. Siin on read, mida me selleks kasutame:

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

„.Value” ja võrdusmärgiga määrame igale neist lahtritest ühe meie muutuja väärtuse.

Ja see ongi kõik! Me ütleme Excelile, et oleme selle alamosa kirjutamisega lõpuga „Sub Sub” lõpetanud ja VBA makro on valmis.

Kui käivitame makro koos Makrod nuppu Arendaja vahekaardil saame oma summad:

VBA ehitusplokkide kokkupanek Excelis

Kui vaatate esimest korda ülaltoodud VBA makro, tundub see üsna keeruline. Kuid pärast selle osadeks jaotamist saab loogika selgeks. Nagu iga skriptikeel, võtab ka VBA süntaksiga harjumine aega.

Kuid harjutades loote oma VBA sõnavara ja saate makrosid kirjutada kiiremini, täpsemalt ja palju suurema võimsusega, kui neid kunagi salvestada suudaksite.

Kui jänni jääte, on Google'i otsingu käivitamine kiire viis VBA küsimustele vastamiseks. Ja Microsofti Exceli VBA viide võib olla kasulik, kui olete valmis tehnilise vastuse leidmiseks selle läbi uurima.

Kui olete põhitõdedega rahul, võite hakata VBA -d kasutama näiteks Excelist e -kirjade saatmine , Outlooki ülesannete eksportimine ja arvuti teabe kuvamine.

kas saate ps3 peal ps3 mängida
Jaga Jaga Piiksuma E -post Siin on põhjus, miks FBI andis hoiatuse taru lunavara eest

FBI andis hoiatuse eriti vastiku lunavara tüve eest. Siin on põhjus, miks peate Hive lunavara suhtes eriti ettevaatlik olema.

Loe edasi
Seotud teemad
  • Tootlikkus
  • Arvutustabel
  • Microsoft Excel
  • Microsoft Office 2016
  • Makrod
  • Kodeerimise õpetused
Autori kohta Siis Albright(Avaldatud 506 artiklit)

Dann on sisustrateegia ja turunduskonsultant, kes aitab ettevõtetel nõudlust ja müügivihjeid luua. Samuti peab ta blogi strateegiast ja sisuturundusest saidil dannalbright.com.

Veel Dann Albrightilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin