En begynderundervisning om at skrive VBA -makroer i Excel (og hvorfor du bør lære)

En begynderundervisning om at skrive VBA -makroer i Excel (og hvorfor du bør lære)

Excel -makroer kan spare dig masser af tid med automatisering af Excel -processer, som du ofte bruger . Men makroer er faktisk ret begrænsede. Det er let at lave en fejl med optagelsesværktøjet, og optagelsesprocessen er akavet.





Brug af VBA til at oprette makroer giver dig meget mere kraft. Du kan fortælle Excel præcis, hvad du skal gøre, og hvordan du gør det. Du får også adgang til mange flere funktioner og muligheder. Hvis du bruger Excel regelmæssigt, er det værd at lære at oprette VBA -makroer.





Vi starter med det grundlæggende.





Hvad er VBA?

VBA er Visual Basic til applikationer , et programmeringssprog, som du kan bruge i mange Microsoft -apps. Visual Basic er et programmeringssprog, og VBA er den applikationsspecifikke version af det. (Microsoft afbrød Visual Basic tilbage i 2008, men VBA går stadig stærkt).

Heldigvis for ikke-programmerere er VBA meget enkel, og den grænseflade, du bruger til at redigere den, giver meget hjælp. Mange af de kommandoer, du vil bruge, vises forslag til forslag og automatiske kompletteringer, der hjælper dig med at få dit script til at fungere hurtigt.



Alligevel tager VBA et stykke tid at vænne sig til.

Fordelene ved VBA -makroer i Excel

Hvis VBA er vanskeligere end at optage en makro, hvorfor skulle du så bruge den? Det korte svar er, at du får meget mere strøm ud af VBA -makroer.





I stedet for at klikke rundt i dit regneark og registrere disse klik, kan du få adgang til Excel's fulde udvalg af funktioner og muligheder. Du skal bare vide, hvordan du bruger dem.

jeg ved ikke hvad jeg skal søge

Og når du er mere komfortabel med VBA, kan du gøre alle de ting, du kan gøre i en almindelig makro på meget mindre tid. Resultaterne vil også være mere forudsigelige, som du fortæller Excel Nemlig hvad skal man gøre. Der er slet ingen tvetydighed.





Når du har oprettet din VBA -makro, er det let at gemme og dele den, så alle andre kan drage fordel af den. Dette er især nyttigt, når du arbejder med mange mennesker, der skal gøre de samme ting i Excel.

Lad os se på en simpel VBA -makro for at se, hvordan det fungerer.

Et eksempel på en VBA -makro i Excel

Lad os se på en simpel makro. Vores regneark indeholder navne på medarbejdere, butiksnummeret, hvor medarbejderne arbejder, og deres kvartalsvise salg.

Denne makro tilføjer kvartalssalget fra hver butik og skriver disse totaler til celler i regnearket (hvis du ikke er sikker på, hvordan du får adgang til VBA -dialogen, skal du tjekke vores VBA -gennemgang 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 kompliceret ud, men vi bryder det ned, så du kan se de enkelte elementer og lære lidt om det grundlæggende i VBA.

Erklæring om sub

I begyndelsen af ​​modulet har vi 'Sub StoreSales ()'. Dette definerer en ny sub kaldet StoreSales.

Du kan også definere funktioner --- forskellen er, at funktioner kan returnere værdier, og subs ikke kan (hvis du er fortrolig med andre programmeringssprog, er subs tilsvarende metoder). I dette tilfælde behøver vi ikke returnere en værdi, så vi bruger en sub.

I slutningen af ​​modulet har vi 'End Sub', der fortæller Excel, at vi er færdige med denne VBA -makro.

Deklaration af variabler

De første kodelinjer i vores script starter alle med 'Dim'. Dim er VBA's kommando for at deklarere en variabel.

Så 'Dim Sum1' opretter en ny variabel kaldet 'Sum1'. Vi skal dog fortælle Excel, hvilken slags variabel dette er. Vi skal vælge en datatype. Der er mange forskellige datatyper i VBA --- du kan finde fuld liste i Microsofts hjælpedokumenter .

Fordi vores VBA -makro kommer til at beskæftige sig med valutaer, bruger vi valuta -datatypen.

Erklæringen 'Dim Sum1 som valuta' fortæller Excel at oprette en ny valutavariabel kaldet Sum1. Hver variabel, som du erklærer, skal have en 'Som' -sætning for at fortælle Excel dens type.

Start en For Loop

Loops er nogle af de mest kraftfulde ting, du kan oprette på ethvert programmeringssprog. Hvis du ikke er bekendt med sløjfer, kan du tjekke denne forklaring på Do-While-sløjfer. I dette eksempel bruger vi en For -loop, som også er dækket i artiklen.

Sådan ser løkken ud:

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

Dette fortæller Excel at itereere gennem cellerne i det område, vi har angivet. Vi har brugt en Områdeobjekt , som er en bestemt type objekt i VBA. Når vi bruger det på denne måde --- Område ('C2: C51') --- fortæller det Excel, at vi er interesserede i de 50 celler.

'For hver' fortæller Excel, at vi skal gøre noget med hver celle i området. 'Næste celle' kommer efter alt, hvad vi vil gøre, og fortæller Excel at starte løkken fra begyndelsen (startende med den næste celle).

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

Kan du gætte, hvad det gør?

Bemærk: Strengt taget, at bruge en While -loop kan have været et bedre valg . Af hensyn til undervisningen besluttede jeg dog at bruge en For -loop med en exit.

computer langsom efter windows opdatering 2016

If-Then-Else-erklæringer

Kernen i denne særlige makro er i If-Then-Else-udsagnene. Her er vores række af betingede udsagn:

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 sandsynligvis gætte, hvad disse udsagn gør. Du kender dog muligvis ikke ActiveCell.Offset. 'ActiveCell.Offset (0, -1)' fortæller Excel at se på cellen, der er en kolonne til venstre for den aktive celle.

I vores tilfælde fortæller det Excel at konsultere kolonnen med butiksnummer. Hvis Excel finder en 1 i denne kolonne, tager den indholdet i den aktive celle og tilføjer den til Sum1. Hvis den finder en 2, tilføjer den indholdet af den aktive celle til Sum2. Og så videre.

Excel gennemgår alle disse udsagn i rækkefølge. Hvis betinget erklæring er tilfreds, fuldender det derefter -sætningen. Hvis ikke, flytter det ind i det næste ElseIf. Hvis det kommer helt til ende, og ingen af ​​betingelserne er opfyldt, tager det ingen handling.

Kombinationen af ​​sløjfen og betingelserne er det, der driver denne makro. Løkken fortæller Excel at gå gennem hver celle i markeringen, og betingelserne fortæller det, hvad de skal gøre med den celle.

Skrivning af celleværdier

Endelig får vi skrevet resultaterne af vores beregninger til celler. Her er de linjer, vi bruger til at gøre det:

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

Med '.Value' og et lighedstegn sætter vi hver af disse celler til værdien af ​​en af ​​vores variabler.

Og det er det! Vi fortæller Excel, at vi er færdige med at skrive denne Sub med 'End Sub', og VBA -makroen er fuldført.

Når vi kører makroen med Makroer knappen i Udvikler fane, får vi vores summer:

Sammensætning af byggestenene i VBA i Excel

Når du først ser på VBA -makroen ovenfor, ser den ret kompleks ud. Men efter at have opdelt den i dens bestanddele, bliver logikken klar. Som ethvert scriptsprog tager det tid at vænne sig til syntaksen i VBA.

Men med øvelse opbygger du dit VBA -ordforråd og kan skrive makroer hurtigere, mere præcist og med meget mere kraft, end du nogensinde kunne optage dem.

Når du sidder fast, er det en hurtig måde at få besvaret dine VBA -spørgsmål ved at køre en Google -søgning. Og Microsofts Excel VBA -reference kan være nyttigt, hvis du er villig til at grave igennem det for et teknisk svar.

Når du er fortrolig med det grundlæggende, kan du begynde at bruge VBA til ting som afsendelse af e -mails fra Excel , eksportere Outlook -opgaver og vise dine pc -oplysninger.

hvordan man portrætter iphone 7
Del Del Tweet E -mail Her er hvorfor FBI udsendte en advarsel for Hive Ransomware

FBI udsendte en advarsel om en særlig grim stamme af ransomware. Her er hvorfor du skal være særlig forsigtig med Hive ransomware.

Læs Næste
Relaterede emner
  • Produktivitet
  • Regneark
  • Microsoft Excel
  • Microsoft Office 2016
  • Makroer
  • Kodning Tutorials
Om forfatteren Derefter Albright(506 artikler udgivet)

Dann er en indholdsstrategi og marketingkonsulent, der hjælper virksomheder med at skabe efterspørgsel og kundeemner. Han blogger også om strategi og content marketing på dannalbright.com.

Mere fra Dann Albright

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere