En nybörjarhandledning om att skriva VBA-makron i Excel (och varför du borde lära)

En nybörjarhandledning om att skriva VBA-makron i Excel (och varför du borde lära) / Produktivitet

Excel-makron kan spara dig lite tid genom att automatisera Excel-processer som du ofta använder Så här spelar du in en makro i Excel 2016 Så här spelar du in en makro i Excel 2016 Visste du att du kan automatisera repetitiva uppgifter i Microsoft Excel med hjälp av makron? Vi visar hur du spelar in ett makro i Excel 2016 för att spara mycket tid. Läs mer . Men makron är faktiskt ganska begränsade. Det är lätt att göra ett misstag med inspelningsverktyget, och inspelningsprocessen är besvärlig.

Använda VBA för att skapa makron ger dig mycket mer ström. Du kan berätta exakt exakt vad du ska göra och hur man gör det. Du får också tillgång till mycket fler funktioner och funktioner. Om du använder Excel regelbundet är det värt att lära dig hur du skapar VBA-makron.

Vi börjar med grunderna.

Vad är VBA?

VBA är Visual Basic för applikationer, ett programmeringsspråk som du kan använda i många Microsoft-appar. Visual Basic är ett programmeringsspråk, och VBA är den applikationsspecifika versionen av det. (Microsoft upphörde Visual Basic tillbaka 2008, men VBA går fortfarande starkt).

Lyckligtvis för icke-programmörer är VBA väldigt enkelt, och gränssnittet som du använder för att redigera det ger mycket hjälp. Många av kommandona du använder popup-förslag och automatiska kompletteringar hjälper dig att få ditt skript att fungera snabbt.

Ändå tar VBA ett tag att vänja sig.

Fördelarna med VBA-makron i Excel

Om VBA är svårare än att spela in ett makro, varför skulle du använda den? Det korta svaret är att du får mycket mer ström ur VBA-makron.

Istället för att klicka på kalkylarket och spela in dem klickar du på Excels fullständiga utbud av funktioner och funktioner. Du behöver bara veta hur man använder dem.

Och när du är mer bekväm med VBA, kan du göra allt du kan göra i ett vanligt makro på mycket mindre tid. Resultaten kommer också att vara mer förutsägbara, som du säger Excel exakt vad ska man göra. Det finns ingen tvetydighet alls.

När du har skapat ditt VBA-makro är det enkelt att spara och dela det så att alla andra kan dra nytta av det. Det här är särskilt användbart när du arbetar med många människor som behöver göra samma saker i Excel.

Låt oss titta på ett enkelt VBA-makro för att se hur det fungerar.

Ett exempel på en VBA-makro i Excel

Låt oss titta på ett enkelt makro. Vårt kalkylblad innehåller namn på anställda, affärsnummer där anställda arbetar och kvartalsvis försäljning.

Detta makro kommer att lägga till kvartalsförsäljningen från varje butik och skriva dessa summor till celler i kalkylbladet (om du inte är säker på hur du får tillgång till VBA-dialogrutan, kolla in vårt VBA-genombrott här):

Sub StoreSales () Dim Sum1 Som Valuta Dim Sum2 Som Valuta Dim Sum3 Som Valuta Dim Sum4 Som Valuta För Varje Cell In Range ("C2: C51") Cell.Activate Om IsEmpty (Cell) Avsluta För Om ActiveCell.Offset (0, -1) = 1 Då Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 2 Då Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Då Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Då Sum4 = Sum4 + Cell.Value End Om nästa cellområde ("F2"). Värde = Sum1 Range ("F3"). Värde = Sum2 Range (" F4 "). Värde = Sum3 Range (" F5 "). Värde = Sum4 End Sub

Det kan se länge och komplicerat ut, men vi kommer att bryta ner det så att du kan se de enskilda elementen och lära dig lite om grunderna i VBA.

Deklarera Sub

I början av modulen har vi “Sub StoreSales ()”. Detta definierar en ny del som heter StoreSales.

Du kan också definiera funktioner - skillnaden är att funktioner kan returnera värden, och subs kan inte (om du är bekant med andra programmeringsspråk, sub är motsvarande metoder). I det här fallet behöver vi inte returnera ett värde, så vi använder en del.

I slutet av modulen har vi “Avsluta Sub,” som berättar Excel att vi är klara med detta VBA-makro.

Deklarera variabler

De första raderna av kod i vårt skript börjar alla “Dämpa.” Dim är VBA: s kommando för att deklarera en variabel.

Så “Dim Sum1” skapar en ny variabel som heter “sum1.” Vi måste dock berätta för Excel vilken typ av variabel detta är. Vi måste välja en datatyp. Det finns många olika datatyper i VBA-du kan hitta den fullständiga listan i Microsofts hjälpdokument.

Eftersom vårt VBA-makro ska hantera valutor använder vi valutatypstypen.

Påståendet “Dim Sum1 Som Valuta” berättar för Excel att skapa en ny valuta variabel kallad Sum1. Varje variabel som du förklarar behöver ha en “Som” uttalande för att berätta för Excel sin typ.

Starta en för loop

Loops är några av de mest kraftfulla sakerna du kan skapa på något programmeringsspråk. Om du inte känner till slingor, kolla in denna förklaring av Gör-medan slingor Hur gör-medan slingor arbetar med datorprogrammering Hur gör-medan slingor arbetar i datorprogrammering Slingor är en av de första kontrolltyperna du lär dig i programmering . Du vet förmodligen om stund och för slingor, men vad åstadkommer en stund-slinga? Läs mer . I det här exemplet använder vi en For-loop som också omfattas av artikeln.

Här ser du slingan ut:

För varje cell i intervallet ("C2: C51") [en massa saker] Nästa cell

Detta berättar att Excel ska iterera genom cellerna i det intervall som vi angav. Vi har använt ett Range-objekt Förstå Excel-celler vs Range-funktioner i VBA Förstå Excel-celler vs Range-funktioner i VBA Använda Range och Cell-funktionerna i Excel kan bli mycket förvirrande. Så här kan du använda dem på sätt som du förmodligen aldrig föreställt dig, med hjälp av VBA Read More, vilket är en specifik typ av objekt i VBA. När vi använder den här vägen-Range (“C2: C51”) - det berättar för Excel att vi är intresserade av de 50 cellerna.

“För varje” berättar för Excel att vi ska göra något med varje cell i intervallet. “Nästa cell” kommer efter allt vi vill göra, och berättar att Excel startar slingan från början (börjar med nästa cell).

Vi har också detta uttalande: “Om IsEmpty (Cell) sedan avslutas.”

Kan du gissa vad det gör?

Notera: Strängt taget kan det vara ett bättre val när du använder en loop medan du har programmerat Excel 4 Makroer med VBA 4-fel som du kan undvika när du programmerar Excel Makroer med VBA Enkel kod och makron är nycklarna till Microsoft Excel-supermakter. Även icke-programmörer kan enkelt lägga imponerande funktionalitet till sina kalkylblad med virtuella grunder för applikationer (VBA). Undvik bara dessa programmering nybörjare misstag! Läs mer . Men för lärarnas skull bestämde jag mig för att använda en For-loop med en Exit.

If-Then-Else-uttalanden

Kärnan i detta specifika makro finns i If-Then-Else-uttalandena. Här är vår sekvens av villkorliga uttalanden:

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

För det mesta kan du nog gissa vad dessa uttalanden gör. Du kanske inte är bekant med ActiveCell.Offset. “ActiveCell.Offset (0, -1)” berättar att Excel ska se på cellen som är en kolumn till vänster om den aktiva cellen.

I vårt fall berättar Excel att kolla butikskolumnen. Om Excel hittar en 1 i den här kolumnen tar den innehållet i den aktiva cellen och lägger den till Sum1. Om den finner en 2, lägger den innehållet i den aktiva cellen till Sum2. Och så vidare.

Excel går igenom alla dessa uttalanden i ordning. Om det villkorliga uttalandet Hur man använder IF-uttalanden i Microsoft Excel Så här använder du IF-uttalanden i Microsoft Excel Oavsett om du är en erfaren expert eller ett kalkylblad börjar du kolla in den här guiden till IF-uttalanden i Excel. Läs mer är nöjd, det kompletterar då uttalandet. Om inte, flyttas det till nästa ElseIf. Om det kommer hela vägen till slutet och ingen av villkoren är uppfyllda, kommer den inte att vidta några åtgärder.

Kombinationen av slingan och conditionalsna är vad som driver detta makro. Slingan berättar att Excel går igenom varje cell i urvalet, och conditionalsna berättar vad man ska göra med den cellen.

Skriva cellvärden

Slutligen får vi skriva resultaten från våra beräkningar till celler. Här är de linjer vi använder för att göra det:

Värde = Sum1 Range ("F3"). Värde = Sum2 Range ("F4"). Värde = Sum3 Range ("F5"). Värde = Sum4

Med “.Värde” och ett lika tecken, sätter vi alla dessa celler till värdet av en av våra variabler.

Och det är allt! Vi berättar för Excel att vi är redo att skriva denna del med “Avsluta Sub,” och VBA-makroen är klar.

När vi kör makro med Makron knapp i Utvecklare fliken får vi våra summor:

Att sätta ihop byggstenarna i VBA i Excel

När du först tittar på VBA-makroet ovan ser det ganska komplex ut. Men efter att ha brutit ner det i dess ingående delar blir logiken klar. Liksom alla skriptspråk tar det tid att vänja sig på VBA: s syntax.

Men med övning kommer du att bygga upp ditt VBA-ordförråd och kunna skriva makron snabbare, mer exakt och med mycket mer effekt än du någonsin kunde spela in dem.

När du fastnar, kör en Google-sökning är ett snabbt sätt att få svara på dina VBA-frågor. Och Microsofts Excel VBA-referens kan vara till hjälp om du är villig att gräva igenom det för ett tekniskt svar.

När du är bekväm med grunderna kan du börja använda VBA för saker som att skicka e-post från Excel, exportera Outlook-uppgifter Så här exporterar du dina Outlook-uppgifter till Excel med VBA Hur exporterar du dina Outlook-uppgifter till Excel med VBA Oavsett om du är en fan av Microsoft, en bra sak som kan sägas om MS Office-produkter är åtminstone hur lätt det är att integrera var och en av dem med varandra ... Läs mer och visa din PC-information Så här ser du all din PC-information med en enkel Excel VBA-script Så här ser du all din datorinformation med hjälp av en enkel Excel VBA Script Excel och 10 minuters arbete ger dig mer detaljerad information om din dator än vad du någonsin trodde möjligt. Låter för bra för att vara sant? Det är Windows, om du vet hur du använder den. Läs mer .

.