Selv om Excel allerede har hundrevis av innebygde funksjoner som SUM, VLOOKUP, LEFT, og så videre, er de tilgjengelige innebygde funksjonene vanligvis ikke tilstrekkelige nok til å gjøre ganske komplekse oppgaver. Men ikke bekymre deg fordi du bare trenger å lage de nødvendige funksjonene selv.
Steg
Trinn 1. Opprett en ny arbeidsbok eller åpne arbeidsboken du vil behandle med User Defined Functions (UDF)
Trinn 2. Åpne Visual Basic Editor i Microsoft Excel via Verktøy-> Makro-> Visual Basic Editor (eller trykk på snarveien Alt+F11)
Trinn 3. Klikk på Modul -knappen for å legge til en ny modul i regnearket
Du kan opprette en UDF i en arbeidsbok uten å legge til en ny modul, men funksjonen fungerer ikke i andre regneark i den samme arbeidsboken.
Trinn 4. Lag "hodet" eller "prototypen" av funksjonen din
Funksjonsprototypen må følge følgende struktur:
offentlig funksjon "Funksjonsnavn" (parameter1 Som type1, parameter2 Som type2) Som Resultattype.
Prototyper kan ha så mange funksjoner som mulig, og deres typer kan være alle grunnleggende datatyper eller Excel -objekttyper i form av område. Du kan tenke på parametere som "operanter" (operatører) som funksjonen vil virke på. For eksempel, når du skriver SIN (45) for å beregne sinus på 45 grader, blir tallet 45 tatt som en parameter. Deretter vil funksjonskoden bruke disse verdiene til å utføre beregninger og vise resultatene.
Trinn 5. Legg til funksjonskoden for å sikre at du: 1) bruker verdien gitt av parameteren; 2) gi resultatet til funksjonsnavnet; og 3) lukk funksjonen med setningen "sluttfunksjon". Å lære å programmere i VBA eller på et annet språk tar mye tid og detaljert veiledning. Heldigvis har disse funksjonene vanligvis små kodeblokker og gjør ikke mye bruk av programmeringsspråkfunksjoner. Her er noen elementer i VBA -språket som kan brukes:
- If (if) -blokken, som lar deg utføre en del av koden bare hvis betingelsen er oppfylt. Som et eksempel:
- . Du kan utelate Else -søkeordet sammen med den andre delen av koden, da det er valgfritt.
- Do (do) -blokken, som utfører en del av While eller Til -koden når eller til betingelsen er oppfylt. Som et eksempel:
- . Legg også merke til den andre linjen som "deklarerer" variabelen. Du kan legge til variabler i koden din for senere bruk. Variabler fungerer som midlertidige verdier i koden. Til slutt kan du vurdere funksjonserklæringen som BOOLEAN, som er en datatype som bare tillater SANN eller FALSK verdi. Denne metoden for å bestemme primtall er langt fra optimal, men koden er skrevet på en slik måte at den er lett å lese.
- For blokk (til), som utfører en viss mengde kode. Som et eksempel:
- En konstant verdi som skrives direkte inn i celleformelen. I dette tilfellet må teksten (strengen) siteres.
- Cellreferanser, for eksempel B6 eller rekkevidde som A1: C3 (parameteren må være datatypen "Range")
-
En annen funksjon som er inkludert i funksjonen din (funksjonen din kan også være vedlagt i en annen funksjon), for eksempel: = Faktorisk (MAKS (D6: D8))
Trinn 7. Kontroller at resultatene er riktige
Bruk den flere ganger for å sikre at funksjonen er i stand til å håndtere forskjellige parameterverdier riktig:
Tips
- Når du skriver kodeblokker i kontrollstrukturer som If, For, Do, etc., må du sørge for å innrykke (sett inn venstre linjegrense litt inne) i kodeblokken ved å trykke på mellomromstasten flere ganger eller kategorien. Dette vil gjøre koden lettere å forstå og feil vil være mye lettere å finne. I tillegg blir økningen i funksjonalitet lettere å gjøre.
- Hvis du ikke vet hvordan du skriver kode for funksjoner, kan du lese artikkelen Hvordan skrive en enkel makro i Microsoft Excel.
- Noen ganger trenger funksjoner ikke alle parametrene for å beregne resultatet. I dette tilfellet kan du bruke det valgfrie søkeordet foran parameternavnet i funksjonsoverskriften. Du kan bruke funksjonen IsMissing (parameternavn) i koden for å avgjøre om en parameter er tildelt en verdi eller ikke.
- Bruk ubrukte navn som funksjoner i Excel, slik at ingen funksjoner blir overskrevet og slettet.
- Excel har mange innebygde funksjoner, og de fleste beregninger kan utføres ved hjelp av disse innebygde funksjonene, enten individuelt eller alle samtidig. Sørg for å ta en titt på listen over tilgjengelige funksjoner før du begynner å kode selv. Utførelse kan gjøres raskere hvis du bruker innebygde funksjoner.
Advarsel
- Av sikkerhetshensyn deaktiverer mange mennesker makroer. Sørg for å varsle arbeidsbokmottakerne om at den innsendte arbeidsboken har makroer, og at disse makroene ikke vil skade datamaskinene.
- Funksjonen som brukes i denne artikkelen er ikke den beste måten å løse det relaterte problemet. Eksemplet brukes til å forklare bruken av språkkontrollstrukturer.
- VBA, som andre språk, har flere andre kontrollstrukturer i tillegg til Do, If og For. Strukturen som diskuteres her beskriver bare hva som kan gjøres i funksjonens kildekode. Det er mange guider på internett som kan brukes til å lære deg VBA.
Offentlig funksjon Kursresultat (som heltallsverdi) som streng
Hvis verdi> = 5 Da
Kursresultater = "Godkjent"
Ellers
Kursresultater = "Avvist"
Slutt om
Sluttfunksjon
Legg merke til elementene i If -kodeblokken:
IF -tilstand DA KODE ELSE -kode END IF
Offentlig funksjon BilPrima (verdi som heltall) Som boolsk
Dim i As Integer
jeg = 2
BilPrima = Sant
Gjøre
Hvis verdi / i = Int (verdi / i) Da
BilPrima = Falsk
Slutt om
i = i + 1
Loop While i <value And NumberPrima = True
Sluttfunksjon
Se igjen på elementene:
DO code LOOP WHILE/UNTIL condition
Offentlig funksjonsfaktoriell (verdi som heltall) Så lenge
Dempe resultater så lenge
Dim i As Integer
Hvis verdi = 0 Da
resultat = 1
ElseIf verdi = 1 Da
resultat = 1
Ellers
resultat = 1
For i = 1 Til verdi
resultat = resultat * i
Neste
Slutt om
Faktorisk = resultat
Sluttfunksjon
Se igjen på elementene:
FOR variabel = nedre grense TIL øvre grense for kode NESTE
. Vær også oppmerksom på det ekstra ElseIf -elementet i If -setningen, som lar deg legge til flere alternativer til koden som kjøres. Tenk til slutt på “resultat” -funksjonen og variabelen deklarert som lang. Lang datatype tillater mye større verdier enn heltall.
Nedenfor vises koden for en funksjon som konverterer små tall til ord.
Trinn 6. Gå tilbake til arbeidsboken og bruk funksjonen ved å skrive symbolet “lik” (=) etterfulgt av navnet på funksjonen i cellen
Skriv åpningsbrakettene (“(“) etter funksjonsnavnet ved å bruke tegnet koma for å skille parametrene, og avslutte med lukkebraketter (“)”). Som et eksempel:
= NumberToLetter (A4)
. Du kan også bruke hjemmelagde formler ved å søke etter dem i kategorier Brukerdefinert inne i alternativet Sett inn formel. Du klikker bare på knappen Fx til venstre for formellinjen. Det er tre typer parameterformer i funksjoner: