En nybegyndervejledning til skrivning af VBA-makroer i Excel (og hvorfor du burde lære)

  • Joseph Goodman
  • 0
  • 2883
  • 256
Reklame

Excel-makroer kan spare dig for masser af tid ved at automatisere 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 magt. Du kan fortælle Excel nøjagtigt, hvad du skal gøre, og hvordan du gør det. Du får også adgang til meget 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 afbragte Visual Basic tilbage i 2008, men VBA går stadig stærkt).

Heldigvis for ikke-programmerere er VBA meget enkel, og grænsefladen, som du bruger til at redigere den, tilbyder en masse hjælp. Mange af de kommandoer, du bruger pop-up-forslag og automatiske udførelser, så du får dit script hurtigt til at fungere.

Stadig 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 bruge den? Det korte svar er, at du får meget mere strøm ud af VBA-makroer.

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

Og når du først er mere komfortabel med VBA, kan du gøre alle de ting, du måske gør i en almindelig makro på meget mindre tid. Resultaterne vil også være mere forudsigelige, da du fortæller Excel Nemlig hvad skal man gøre. Der er overhovedet 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 har brug for 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 enkel makro. Vores regneark indeholder navne på medarbejdere, butiknummeret, hvor de ansatte arbejder, og deres kvartalsvise salg.

Denne makro tilføjer kvartalsomsætningen 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, så tjek vores VBA-gennemgang her):

Sub StoreSales () Dim Sum1 Som valuta Dim Sum2 Som valuta Dim Sum3 Som valuta Dim Sum4 Som valuta for hver celle inden for rækkevidde ("C2: C51") Cell.Aktiver Hvis IsEmpty (Cell) derefter afslutte for Hvis ActiveCell.Offset (0, -1) = 1 Derefter Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Så Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Så Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Så Sum4 = Sum4 + Cell.Value End Hvis næste celleområde ("F2"). Værdi = Sum1 Range ("F3"). Værdi = Sum2 Range (" F4 "). Værdi = Sum3 Range (" F5 "). Værdi = Sum4 End Sub

Dette ser måske 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 af sub

I begyndelsen af ​​modulet har vi “UnderbutikSalg ()”. Dette definerer en ny sub kaldet StoreSales.

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

I slutningen af ​​modulet har vi “Afslut under,” som fortæller Excel, at vi er færdige med denne VBA-makro.

Deklarerende variabler

De første kodelinjer i vores script starter alle med “Svag.” Dim er VBA's kommando til at erklære en variabel.

Så “Dim Sum1” opretter en ny variabel kaldet “sum1.” Vi skal dog fortælle Excel, hvilken slags variabel dette er. Vi er nødt til at vælge en datatype. Der er mange forskellige datatyper i VBA-du kan finde den fulde liste i Microsofts hjælpedokumenter.

Da vores VBA-makro kommer til at handle med valutaer, bruger vi valutadatatypen.

Udsagnet “Dim Sum1 som valuta” fortæller Excel at oprette en ny valutavariabel kaldet Sum1. Hver variabel, som du erklærer, skal have en “Som” erklæring for at fortælle Excel dens type.

Start af en for loop

Loops er nogle af de mest kraftfulde ting, du kan oprette på ethvert programmeringssprog. Hvis du ikke er bekendt med loops, kan du tjek denne forklaring af Do-While-loops. Hvordan-mens-loops fungerer i computerprogrammering. Hvordan-mens-loops fungerer i computerprogrammering-loops er en af ​​de første kontroltyper, du lærer i programmering . Du ved sandsynligvis om mens og til sløjfer, men hvad opnår en do-while-loop? . I dette eksempel bruger vi en For-loop, som også er dækket af artiklen.

Sådan ser sløjfen ud:

For hver celle inden for rækkevidde ("C2: C51") [en masse ting] Næste celle

Dette fortæller Excel at iterere gennem cellerne i det angivne interval. Vi har brugt et Range-objekt Forstå Excel-celler vs. Range-funktioner i VBA. Forstå Excel-celler vs. Range-funktioner i VBA Brug af Range- og Cells-funktionerne i Excel kan blive meget forvirrende. Her er, hvordan du kan gøre brug af dem på måder, du sandsynligvis aldrig har forestillet dig, ved hjælp af VBA, som er en bestemt type objekt i VBA. Når vi bruger det på denne måde-rækkevidde (“C2: C51”) -Det fortæller Excel, at vi er interesseret i disse 50 celler.

“For hver” fortæller Excel, at vi vil 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 loopen fra begyndelsen (starter med den næste celle).

Vi har også denne erklæring: “Hvis IsEmpty (Cell) skal du afslutte.”

Kan du gætte hvad det gør?

Bemærk: Strengt taget kan det at have brugt en While-sløjfe have været et bedre valg 4 fejl, som du kan undgå, når du programmerer Excel-makroer med VBA 4 fejl, du kan undgå, når du programmerer Excel-makroer med VBA Simpel kode og makroer er nøglerne til Microsoft Excel-supermagter. Selv ikke-programmerere kan let tilføje imponerende funktionalitet til deres regneark med Virtual Basics for Applications (VBA). Bare undgå disse programmering af begyndelsesfejl! . For undervisningens skyld besluttede jeg dog at bruge en For-loop med en exit.

Hvis-derefter-andet-udsagn

Kernen i netop denne makro er i If-Then-Else-udsagnene. Her er vores rækkefølge af betingede udsagn:

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

For det meste kan du sandsynligvis gætte, hvad disse udsagn gør. Du er muligvis ikke bekendt med ActiveCell.Offset. “ActiveCell.Offset (0, -1)” fortæller Excel at se på den celle, der er en kolonne til venstre for den aktive celle.

I vores tilfælde fortæller det Excel at konsultere butiknummerkolonnen. Hvis Excel finder en 1 i denne kolonne, tager den indholdet af 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 den betingede erklæring Sådan bruges IF-erklæringer i Microsoft Excel Sådan bruges IF-erklæringer i Microsoft Excel Uanset om du er en erfaren ekspert eller en regnearksbegynder, vil du tjekke denne vejledning til IF-udsagn i Excel. er tilfreds, udfylder den derefter-erklæringen. Hvis ikke, flytter det ind i den næste ElseIf. Hvis det kommer helt til slutningen, og ingen af ​​betingelserne er opfyldt, tager det ikke noget.

Kombinationen af ​​sløjfen og konditionerne er det, der driver denne makro. Sløjfen fortæller Excel at gå gennem hver celle i markeringen, og konditionerne 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:

Område ("F2"). Værdi = Sum1 Område ("F3"). Værdi = Sum2 Område ("F4"). Værdi = Sum3 Område ("F5"). Værdi = Sum4

Med “.Værdi” og et ligestillingstegn, 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ærdig med at skrive denne underdel med “Afslut under,” og VBA-makroen er komplet.

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

At sætte byggestenene i VBA sammen i Excel

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

Men med praksis opbygger du dit VBA-ordforråd og er i stand til at skrive makroer hurtigere, mere præcist og med meget mere magt, end du nogensinde kunne optage dem.

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

Når du er tilpas med det grundlæggende, kan du begynde at bruge VBA til ting som at sende e-mails fra Excel, eksportere Outlook-opgaver Sådan eksporteres dine Outlook-opgaver til Excel med VBA Sådan eksporteres dine Outlook-opgaver til Excel med VBA Uanset om du er en fan af Microsoft, en god ting, der i det mindste kan siges om MS Office-produkter, er, hvor let det er at integrere hver af dem med hinanden… og vise dine pc-oplysninger Sådan kan du se alle dine pc-oplysninger ved hjælp af en enkel Excel VBA-script Sådan kan du se alle dine pc-oplysninger ved hjælp af et simpelt Excel VBA-script Excel og 10 minutters arbejde giver dig mere detaljerede oplysninger om din computer, end du nogensinde troede muligt. Lyder det for godt til at være sandt? Det er Windows, hvis du ved, hvordan du bruger det. .




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.