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

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

Excel -makron kan spara massor av tid med automatisera Excel -processer som du använder ofta . Men makron är faktiskt ganska begränsade. Det är lätt att göra ett misstag med inspelningsverktyget, och inspelningsprocessen är besvärlig.





Att använda VBA för att skapa makron ger dig mycket mer kraft. Du kan berätta exakt vad Excel ska göra och hur du 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 sig att skapa 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 avbröt Visual Basic redan 2008, men VBA går fortfarande starkt).

Lyckligtvis för icke-programmerare är VBA väldigt enkelt, och gränssnittet som du använder för att redigera det erbjuder 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 det? Det korta svaret är att du får mycket mer kraft av VBA -makron.





Istället för att klicka dig runt i kalkylarket och spela in dessa klick kan du få tillgång till Excels alla funktioner och funktioner. Du behöver bara veta hur du använder dem.

hur man fixar sim inte tillhandahållen mm 2

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 blir också mer förutsägbara, som du säger till 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. Detta ä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å ett VBA -makro i Excel

Låt oss titta på ett enkelt makro. Vårt kalkylblad innehåller namn på anställda, det butiksnummer där de anställda arbetar och deras kvartalsförsäljning.

Detta makro lägger till kvartalsförsäljningen från varje butik och skriver dessa totaler till celler i kalkylarket (om du inte är säker på hur du kommer åt VBA -dialogrutan, kolla in vår VBA -genomgång här ):

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

Det här kan se långt 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.

Förklarar sub

I början av modulen har vi 'Sub StoreSales ()'. Detta definierar en ny sub som heter StoreSales.

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

I slutet av modulen har vi 'End Sub', som berättar för Excel att vi är klara med detta VBA -makro.

Förklarande variabler

De första kodraderna i vårt manus börjar alla med 'Dim'. 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 fullständig lista i Microsofts hjälpdokument .

Eftersom vårt VBA -makro kommer att hantera valutor använder vi datatypen Valuta.

Påståendet 'Dim Sum1 som valuta' säger till Excel att skapa en ny valutavariabel som heter Sum1. Varje variabel som du deklarerar måste ha ett 'As' -uttalande för att berätta för Excel dess typ.

Startar en For Loop

Loops är några av de mest kraftfulla sakerna du kan skapa på alla programmeringsspråk. Om du inte är bekant med slingor, kolla in denna förklaring av Do-While-slingor. I det här exemplet använder vi en For -loop, som också behandlas i artikeln.

Så här ser slingan ut:

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

Detta berättar för Excel att iterera genom cellerna i det område vi angav. Vi har använt en Områdeobjekt , som är en specifik typ av objekt i VBA. När vi använder det så här --- Område ('C2: C51') --- det berättar för Excel att vi är intresserade av de 50 cellerna.

'För varje' säger till Excel att vi ska göra något med varje cell i intervallet. 'Nästa cell' kommer efter allt vi vill göra, och uppmanar Excel att starta slingan från början (börjar med nästa cell).

Vi har också detta uttalande: 'If IsEmpty (Cell) Then Exit For.'

Kan du gissa vad det gör?

Notera: Strängt talat, att använda en While -loop kan ha varit ett bättre val . För undervisningens skull bestämde jag mig dock för att använda en For -loop med en exit.

kan du tända min ficklampa

If-Then-Else-uttalanden

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

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

För det mesta kan du förmodligen gissa vad dessa påståenden gör. Du kanske inte är bekant med ActiveCell.Offset. 'ActiveCell.Offset (0, -1)' säger till Excel att titta på cellen som är en kolumn till vänster om den aktiva cellen.

I vårt fall berättar det för Excel att konsultera kolumnen butiksnummer. Om Excel hittar en 1 i den här kolumnen tar den innehållet i den aktiva cellen och lägger till den i Sum1. Om den hittar en 2 lägger den till innehållet i den aktiva cellen till Sum2. Och så vidare.

Excel går igenom alla dessa påståenden i ordning. Om Villkorligt uttalande är nöjd, fyller det i Then -uttalandet. Om inte, flyttar den in i nästa ElseIf. Om det kommer ända till slutet och inga av villkoren har uppfyllts, kommer det inte att vidta några åtgärder.

Kombinationen av slingan och villkoren är det som driver detta makro. Slingan säger till Excel att gå igenom varje cell i markeringen, och villkoren berättar vad de ska göra med den cellen.

Skriva cellvärden

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

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

Med '.Value' och ett likhetstecken ställer vi in ​​var och en av dessa celler till värdet av en av våra variabler.

Och det är allt! Vi berättar för Excel att vi har skrivit den här suben med 'End Sub' och VBA -makrot är klart.

När vi kör makrot med Makron knappen i Utvecklare flik får vi våra summor:

Att sätta ihop byggstenarna i VBA i Excel

När du först tittar på VBA -makrot ovan ser det ganska komplext ut. Men efter att ha delat upp den i dess beståndsdelar blir logiken tydlig. Precis som alla skriptspråk tar det tid att vänja sig vid syntaxen för VBA.

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

När du fastnar är en snabb sökning på Google ett snabbt sätt att få svar 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 skicka mejl från Excel , exportera Outlook -uppgifter och visa din datorinformation.

hur man kör macos på windows
Dela med sig Dela med sig Tweet E-post Här är varför FBI utfärdade en varning för Hive Ransomware

FBI utfärdade en varning om en särskilt otäck stam av ransomware. Här är varför du måste vara särskilt försiktig med Hive -ransomware.

Läs Nästa
Relaterade ämnen
  • Produktivitet
  • Kalkylark
  • Microsoft excel
  • Microsoft Office 2016
  • Makron
  • Handledning för kodning
Om författaren Sedan Albright(506 artiklar publicerade)

Dann är en innehållsstrategi och marknadskonsult som hjälper företag att skapa efterfrågan och leads. Han bloggar också om strategi och innehållsmarknadsföring på dannalbright.com.

Mer från Dann Albright

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera