Även om Excel redan har hundratals inbyggda funktioner som SUM, VLOOKUP, VÄNSTER och så vidare, är de tillgängliga inbyggda funktionerna vanligtvis inte tillräckliga för att utföra ganska komplexa uppgifter. Oroa dig dock inte för du behöver bara skapa de nödvändiga funktionerna själv.
Steg
Steg 1. Skapa en ny arbetsbok eller öppna den arbetsbok som du vill bearbeta med användardefinierade funktioner (UDF)
Steg 2. Öppna Visual Basic Editor i Microsoft Excel via Verktygs-> Makro-> Visual Basic Editor (eller tryck på genvägen Alt+F11)
Steg 3. Klicka på knappen Modul för att lägga till en ny modul i ditt kalkylblad
Du kan skapa en UDF i en arbetsbok utan att lägga till en ny modul, men funktionen fungerar inte i andra kalkylblad i samma arbetsbok.
Steg 4. Skapa "huvudet" eller "prototypen" för din funktion
Funktionsprototypen måste följa följande struktur:
offentlig funktion "Funktionsnamn" (parameter1 Som typ1, parameter2 Som typ2) Som Resultattyp.
Prototyper kan ha så många funktioner som möjligt, och deras typer kan vara alla grundläggande datatyper eller Excel -objekttyper i form av intervall. Du kan tänka på parametrar som "operanter" (operatörer) som funktionen kommer att verka på. Till exempel, när du skriver SIN (45) för att beräkna sinus på 45 grader, kommer talet 45 att tas som en parameter. Funktionskoden använder sedan dessa värden för att utföra beräkningar och visa resultaten.
Steg 5. Lägg till funktionskoden för att säkerställa att du: 1) använder värdet som anges av parametern; 2) skicka resultatet till funktionsnamnet; och 3) stäng funktionen med meningen "slutfunktion". Att lära sig att programmera i VBA eller på något annat språk tar mycket tid och detaljerad vägledning. Lyckligtvis har dessa funktioner vanligtvis små kodblock och använder inte mycket programmeringsspråk. Här är några delar av VBA -språket som kan användas:
- If (if) -blocket, som gör att du bara kan köra en del av koden om villkoret är uppfyllt. Som ett exempel:
- . Du kan utelämna Else -sökordet tillsammans med den andra delen av koden eftersom det är valfritt.
- Do (do) -blocket, som kör en del av While- eller Till -koden när eller tills villkoret är uppfyllt. Som ett exempel:
- . Notera också den andra raden som "deklarerar" variabeln. Du kan lägga till variabler i din kod för senare användning. Variabler fungerar som tillfälliga värden i koden. Slutligen betrakta funktionsdeklarationen som BOOLEAN, som är en datatyp som endast tillåter SANT eller FALSKT värde. Denna metod för att bestämma primtal är långt ifrån optimal, men koden har skrivits på ett sådant sätt att den är lätt att läsa.
- För block (till), som kör en viss mängd kod. Som ett exempel:
- Ett konstant värde som skrivs in direkt i cellformeln. I detta fall måste texten (strängen) citeras.
- Cellreferenser, till exempel B6 eller intervall som A1: C3 (parametern måste vara datatypen "Range")
-
En annan funktion som ingår i din funktion (din funktion kan också ingå i en annan funktion), till exempel: = Factorial (MAX (D6: D8))
Steg 7. Se till att resultaten är korrekta
Använd den flera gånger för att se till att funktionen kan hantera olika parametervärden korrekt:
Tips
- När du skriver kodblock i kontrollstrukturer som If, For, Do, etc., se till att du indragar (sätt in den vänstra linjen lite inuti) kodblocket genom att trycka på mellanslagstangenten flera gånger eller fliken. Detta kommer att göra koden lättare att förstå och fel blir mycket lättare att hitta. Dessutom blir ökningen av funktionalitet lättare att göra.
- Om du inte vet hur du skriver kod för funktioner, läs artikeln Hur man skriver ett enkelt makro i Microsoft Excel.
- Ibland behöver funktioner inte alla parametrar för att beräkna resultatet. I det här fallet kan du använda det valfria nyckelordet före parameternamnet i funktionsrubriken. Du kan använda funktionen IsMissing (parameternamn) i koden för att avgöra om en parameter tilldelas ett värde eller inte.
- Använd oanvända namn som funktioner i Excel så att inga funktioner skrivs över och tas bort.
- Excel har många inbyggda funktioner och de flesta beräkningar kan utföras med hjälp av dessa inbyggda funktioner, antingen individuellt eller alla samtidigt. Se till att titta på listan över tillgängliga funktioner innan du börjar koda själv. Exekvering kan göras snabbare om du använder inbyggda funktioner.
Varning
- Av säkerhetsskäl inaktiverar många människor makron. Se till att du meddelar dina arbetsboksmottagare att den inlämnade arbetsboken har makron och att dessa makron inte skadar deras datorer.
- Funktionen som används i den här artikeln är inte det bästa sättet att lösa det relaterade problemet. Exemplet används för att förklara användningen av språkkontrollstrukturer.
- VBA, liksom andra språk, har flera andra kontrollstrukturer förutom Do, If och For. Strukturen som diskuteras här beskriver bara vad som kan göras i funktionens källkod. Det finns många guider på internet som kan användas för att lära dig VBA.
Public Function Course Result (As Integer value) As String
Om värde> = 5 Då
Kursresultat = "Godkänt"
Annan
Kursresultat = "Avvisat"
Avsluta om
Avsluta funktion
Lägg märke till elementen i If -kodblocket:
IF -tillstånd DÅ kod ELSE -kod END IF
Offentlig funktion BilPrima (värde som heltal) som booleskt
Dim i As Integer
jag = 2
BilPrima = Sant
Do
Om värde / i = Int (värde / i) Då
BilPrima = Falskt
Avsluta om
i = i + 1
Loop While i <value And NumberPrima = True
Avsluta funktion
Titta igen på elementen:
GÖR koden LOOP WHILE/UNTIL skick
Public Function Factorial (värde som heltal) Så länge
Dim resultat så länge
Dim i As Integer
Om värde = 0 Då
resultat = 1
ElseIf värde = 1 Då
resultat = 1
Annan
resultat = 1
För i = 1 Att värdera
resultat = resultat * i
Nästa
Avsluta om
Factorial = resultat
Avsluta funktion
Titta igen på elementen:
FÖR variabel = nedre gräns TILL övre gräns för kod NÄSTA
. Observera också det ytterligare ElseIf -elementet i If -satsen, som låter dig lägga till fler alternativ till koden som körs. Slutligen, överväga funktionen "resultat" och variabel som deklareras som lång. Den långa datatypen tillåter mycket större värden än heltal.
Nedan visas koden för en funktion som omvandlar små tal till ord.
Steg 6. Återgå till arbetsboken och använd funktionen genom att skriva symbolen”lika” (=) följt av namnet på funktionen i cellen
Skriv öppningsfästena (“(“) efter funktionsnamnet med hjälp av tecknet koma för att separera parametrarna och avsluta med stängningsfästen (“)”). Som ett exempel:
= NumberToLetter (A4)
. Du kan också använda hemlagade formler genom att söka efter dem i kategorier Användardefinierad inuti alternativet Infoga formel. Du klickar bara på knappen Fx till vänster om formelfältet. Det finns tre typer av parameterformer i funktioner: