En nybegynners opplæring i å skrive VBA -makroer i Excel (og hvorfor du bør lære)

En nybegynners opplæring i å skrive VBA -makroer i Excel (og hvorfor du bør lære)

Excel -makroer kan spare deg massevis av tid automatisere Excel -prosesser som du bruker ofte . Men makroer er faktisk ganske begrenset. Det er lett å gjøre en feil med opptaksverktøyet, og opptaksprosessen er vanskelig.





Ved å bruke VBA til å lage makroer får du mye mer kraft. Du kan fortelle Excel nøyaktig hva du skal gjøre og hvordan du gjør det. Du får også tilgang til mange flere funksjoner og muligheter. Hvis du bruker Excel regelmessig, er det verdt å lære å lage VBA -makroer.





Vi starter med det grunnleggende.





Hva er VBA?

VBA er Visual Basic for Applications , et programmeringsspråk som du kan bruke i mange Microsoft -apper. Visual Basic er et programmeringsspråk, og VBA er den applikasjonsspesifikke versjonen av det. (Microsoft avbrøt Visual Basic tilbake i 2008, men VBA går fortsatt sterkt).

Heldigvis for ikke-programmerere er VBA veldig enkelt, og grensesnittet du bruker til å redigere det gir mye hjelp. Mange av kommandoene du vil bruke, dukker opp forslag og automatiske fullføringer, som hjelper deg med å få skriptet til å fungere raskt.



Likevel tar VBA litt tid å bli vant til.

Fordelene med VBA -makroer i Excel

Hvis VBA er vanskeligere enn å spille inn en makro, hvorfor skulle du bruke den? Det korte svaret er at du får mye mer kraft ut av VBA -makroer.





I stedet for å klikke deg rundt i regnearket og registrere disse klikkene, kan du få tilgang til hele Excel -funksjonen og funksjonene. Du trenger bare å vite hvordan du bruker dem.

hvordan avinstallere bloatware windows 10

Og når du er mer komfortabel med VBA, kan du gjøre alt du kan gjøre i en vanlig makro på mye kortere tid. Resultatene vil også være mer forutsigbare, som du forteller Excel nøyaktig hva å gjøre. Det er ingen tvetydighet i det hele tatt.





Når du har opprettet din VBA -makro, er det enkelt å lagre og dele den slik at alle andre kan dra nytte av den. Dette er spesielt nyttig når du jobber med mange mennesker som trenger å gjøre de samme tingene i Excel.

La oss se på en enkel VBA -makro for å se hvordan det fungerer.

Et eksempel på en VBA -makro i Excel

La oss se på en enkel makro. Regnearket vårt inneholder navn på ansatte, butikknummeret der de ansatte jobber og kvartalsvise salg.

Denne makroen vil legge til kvartalsvise salg fra hver butikk og skrive totalene til celler i regnearket (hvis du ikke er sikker på hvordan du får tilgang til VBA -dialogboksen, sjekk ut vår VBA -gjennomgang her ):

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

Dette kan se langt og komplisert ut, men vi bryter det ned slik at du kan se de enkelte elementene og lære litt om det grunnleggende i VBA.

Erklærer sub

I begynnelsen av modulen har vi 'Sub StoreSales ()'. Dette definerer en ny sub kalt StoreSales.

Du kan også definere funksjoner --- forskjellen er at funksjoner kan returnere verdier, og subs ikke kan (hvis du er kjent med andre programmeringsspråk, er subs tilsvarende metoder). I dette tilfellet trenger vi ikke å returnere en verdi, så vi bruker en sub.

På slutten av modulen har vi 'End Sub', som forteller Excel at vi er ferdige med denne VBA -makroen.

Deklarere variabler

De første kodelinjene i skriptet vårt starter alle med 'Dim'. Dim er VBAs kommando for å deklarere en variabel.

Så 'Dim Sum1' oppretter en ny variabel kalt 'Sum1'. Vi må imidlertid fortelle Excel hva slags variabel dette er. Vi må velge en datatype. Det er mange forskjellige datatyper i VBA --- du kan finne fullstendig liste i Microsofts hjelpedokumenter .

Fordi vår VBA -makro kommer til å håndtere valutaer, bruker vi valutatypen.

Erklæringen 'Dim Sum1 som valuta' forteller Excel å opprette en ny valutavariabel kalt Sum1. Hver variabel du deklarerer må ha en 'Som' -uttalelse for å fortelle Excel typen.

Starter en For Loop

Loops er noen av de mest kraftfulle tingene du kan lage på ethvert programmeringsspråk. Hvis du ikke er kjent med løkker, sjekk ut denne forklaringen på Do-While-sløyfer. I dette eksemplet bruker vi en For -sløyfe, som også er dekket i artikkelen.

Slik ser løkken ut:

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

Dette forteller Excel å iterere gjennom cellene i området vi spesifiserte. Vi har brukt en Områdeobjekt , som er en bestemt type objekt i VBA. Når vi bruker det på denne måten --- Område ('C2: C51') --- det forteller Excel at vi er interessert i de 50 cellene.

'For hver' forteller Excel at vi skal gjøre noe med hver celle i området. 'Next Cell' kommer etter alt vi vil gjøre, og ber Excel om å starte sløyfen fra begynnelsen (starter med neste celle).

Vi har også denne uttalelsen: 'If IsEmpty (Cell) Then Exit For.'

Kan du gjette hva det gjør?

Merk: Strengt talt, å bruke en While -løkke kan ha vært et bedre valg . Av hensyn til undervisningen bestemte jeg meg imidlertid for å bruke en For -sløyfe med en utgang.

hvordan stoppe en fra å få tilgang til datamaskinen min eksternt

If-Then-Else-utsagn

Kjernen i denne spesielle makroen er i If-Then-Else-setningene. Her er vår serie med betingede utsagn:

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

For det meste kan du sannsynligvis gjette hva disse utsagnene gjør. Du er kanskje ikke kjent med ActiveCell.Offset. 'ActiveCell.Offset (0, -1)' forteller Excel å se på cellen som er én kolonne til venstre for den aktive cellen.

I vårt tilfelle forteller det Excel å konsultere butikknummerkolonnen. Hvis Excel finner en 1 i denne kolonnen, tar den innholdet i den aktive cellen og legger den til Sum1. Hvis den finner en 2, legger den til innholdet i den aktive cellen til Sum2. Og så videre.

Excel går gjennom alle disse utsagnene i rekkefølge. Hvis betinget uttalelse er fornøyd, fullfører det Then -setningen. Hvis ikke, flytter den inn i neste ElseIf. Hvis det kommer helt til slutt og ingen av betingelsene er oppfylt, vil det ikke ta noen handling.

Kombinasjonen av løkken og betingelsene er det som driver denne makroen. Sløyfen forteller Excel å gå gjennom hver celle i utvalget, og betingelsene forteller hva den skal gjøre med cellen.

Skrive celleverdier

Til slutt får vi skrive resultatene av våre beregninger til celler. Her er linjene vi bruker for å gjøre det:

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

Med '.Value' og et likhetstegn setter vi hver av disse cellene til verdien av en av våre variabler.

Og det er det! Vi forteller Excel at vi er ferdige med å skrive denne Sub med 'End Sub', og VBA -makroen er fullført.

Når vi kjører makroen med Makroer -knappen i Utvikler fanen, får vi våre summer:

Å sette sammen byggeklossene til VBA i Excel

Når du først ser på VBA -makroen ovenfor, ser den ganske kompleks ut. Men etter å ha delt den ned i dens bestanddeler, blir logikken klar. Som ethvert skriptspråk, tar det tid å bli vant til syntaksen til VBA.

Men med praksis vil du bygge opp ditt VBA -ordforråd og kunne skrive makroer raskere, mer nøyaktig og med mye mer kraft enn du noen gang kunne spille dem inn.

Når du sitter fast, er det en rask måte å få svar på dine VBA -spørsmål ved å kjøre et Google -søk. Og Microsofts Excel VBA -referanse kan være nyttig hvis du er villig til å grave gjennom det for et teknisk svar.

Når du er komfortabel med det grunnleggende, kan du begynne å bruke VBA for ting som sende e -post fra Excel , eksportere Outlook -oppgaver og vise din PC -informasjon.

hvordan du reduserer pdf -filstørrelse mac
Dele Dele kvitring E -post Her er hvorfor FBI utstedte en advarsel for Hive Ransomware

FBI utstedte en advarsel om en spesielt ekkel stamme av ransomware. Her er hvorfor du må være spesielt forsiktig med Hive ransomware.

Les neste
Relaterte temaer
  • Produktivitet
  • Regneark
  • Microsoft Excel
  • Microsoft Office 2016
  • Makroer
  • Opplæringsprogrammer for koding
Om forfatteren Deretter Albright(506 artikler publisert)

Dann er en innholdsstrategi og markedsføringskonsulent som hjelper bedrifter med å generere etterspørsel og kundeemner. Han blogger også om strategi og innholdsmarkedsføring på dannalbright.com.

Mer fra Dann Albright

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere