Innhold
Selv om Excel har mange, sannsynligvis hundrevis av innebygde funksjoner som SUM, VLOOKUP, VENSTRE, og så videre, når du begynner å bruke Excel for mer kompliserte oppgaver, oppdager du ofte at du trenger en funksjon som ikke eksisterer. Ikke bekymre deg, alt er ikke tapt; alt du trenger er å lage ønsket funksjon.
Fremgangsmåte
- Opprett en ny arbeidsbok eller åpne arbeidsboken der du vil bruke den nyopprettede brukerdefinerte funksjonen (FDU).
-
Åpne Visual Basic Editor som er innebygd i Microsoft Excel ved å gå til Verktøy-> Makro-> Visual Basic Editor (eller ved å trykke Alt + F11). -
Legg til en ny modul til arbeidsboken din ved å klikke på knappen som er angitt. Du kan opprette den brukerdefinerte funksjonen på selve regnearket uten å legge til en ny modul, men dette forhindrer deg i å bruke den på andre regneark i samme arbeidsbok. -
Lag "header" eller "prototype" av funksjonen din. Du må ha følgende struktur: offentlig funksjon TheNameOfYourFunction (param1 Som type1, param2 Som type2) Som returnType Det kan være så mange parametere som ønsket, og deres type kan være hvilken som helst av de grunnleggende datatypene eller Excel-objekttypene som Range. Du kan tenke på parametere som "operandene" som funksjonen din vil handle på. For eksempel, når du sier SIN (45) for å beregne sinus på 45 grader, blir 45 tatt som en parameter. Deretter vil funksjonskoden din bruke denne verdien til å utføre noen beregninger og presentere resultatet. - Legg til funksjonskoden, og pass på: 1) bruk verdiene gitt av parametrene; 2) tilordne resultatet til funksjonsnavnet; og 3) lukk funksjonen med "sluttfunksjon". Det kan ta litt tid å lære å programmere i VBA eller andre språk og kreve en detaljert opplæring.Imidlertid har funksjoner ofte små kodeblokker og bruker få språkressurser. De mest nyttige elementene i VBA-språket er:
- Blokken Hvis, som lar deg kjøre en del av koden bare hvis en betingelse er oppfylt. For eksempel:
Public Function CourseResult (grid As Integer) Som String
Hvis karakter> = 5 Da
CourseResult = "Godkjent"
Ellers
CourseResult = "Avvist"
Slutt om
Sluttfunksjon
Legg merke til elementene i en kodeblokk Hvis:HVIS tilstand DAN-kode ELSE-kode SLUT HVIS. Nøkkelordet Ellers sammen med den andre delen av koden er valgfri.
- Blokken Av, som utfører et stykke kode Samtidig som (mens) eller Før (inntil) en betingelse er oppfylt. For eksempel:
Offentlig funksjon IsPrime (verdi som helhet) som boolsk
Dim i As Integer
jeg = 2
IsPrime = Sant
Av
Hvis verdi / i = Int (verdi / i) Så
IsPrime = Falsk
Slutt om
i = i + 1
Loop While i <value And IsPrime = True
Sluttfunksjon
Se på elementene igjen:DO-kode LOOP WHILE / TIL tilstand. Legg også merke til den andre linjen der en variabel er "deklarert". Du kan legge til variabler i koden din, slik at du kan bruke dem senere. Variabler fungerer som midlertidige verdier i koden. Til slutt, se på funksjonserklæringen som BOOLEAN, som er en datatype som bare tillater verdiene SANN og FALSK. Denne metoden for å bestemme om et tall er primtall er ikke ideelt, men jeg foretrekker å la det være for å gjøre koden lettere å lese.
- Blokken Til, som utfører et stykke kode et spesifisert antall ganger. For eksempel:
Offentlig funksjonsfaktor (verdi som helhet) så lenge
Dunkelt resultat så lenge
Dim i As Integer
Hvis verdien = 0 Da
resultat = 1
ElseIf verdi = 1 Da
resultat = 1
Ellers
resultat = 1
For i = 1 Til verdi
resultat = resultat * i
Neste
Slutt om
Faktor = resultat
Sluttfunksjon
Se på elementene igjen:FOR variabel = nedre grense TIL øvre grenskode NESTE. Legg også merke til elementet Eller hvis lagt til i uttalelsen Hvis, som lar deg legge til flere alternativer for koden som skal utføres. Til slutt, se på funksjonserklæringen og "resultat" -variabelen som Lang. Datatypen Lang tillater mye høyere verdier enn 'Integer'.
Nedenfor er koden for en funksjon som konverterer tall til ord.
- Blokken Hvis, som lar deg kjøre en del av koden bare hvis en betingelse er oppfylt. For eksempel:
- Gå tilbake til arbeidsboken og bruk funksjonen ved å starte innholdet i en celle med en lik etterfulgt av navnet på rollen din. Legg til en innledende parentes til funksjonsnavnet, parametrene skilles med komma og en avsluttende parentes. For eksempel:= NumberToLetters (A4) Du kan også bruke den brukerdefinerte formelen din ved å søke etter den i kategorien Brukerdefinert i veiviseren for å angi formelen. Bare klikk på knappen Fx til venstre for formellinjen. Parametere kan være av tre typer:
- Konstantverdier angitt direkte i celleformelen. Strenger må være vedlagt anførselstegn i dette tilfellet.
- Cellereferanser som B6 eller intervaller som A1: C3 (parameteren må være av typen Gå i stykker"")
- Andre funksjoner som er arrangert i funksjonen din (funksjonen din kan også grupperes i andre funksjoner). Det vil si: = Faktor (MAX (D6: D8))
- Sjekk om resultatet er OK etter å ha brukt funksjonen flere ganger, sørg for at den håndterer forskjellige parameterverdier riktig:
Tips
- Når du skriver en blokk med kode i en kontrollstruktur, for eksempel Hvis, For, Gjør etc., må du huske å legge inn blokken ved å bruke noen blanke eller faner (innrykkstilen er opp til deg). På denne måten blir koden lettere å forstå, og det blir mye lettere å oppdage feil og forbedre koden.
- Excel har mange innebygde funksjoner, og de fleste beregninger kan gjøres ved å bruke dem alene eller i kombinasjon. Søk i listen over tilgjengelige funksjoner før du starter din egen kode. Utførelsen kan gå raskere hvis du bruker innebygde funksjoner.
- Noen ganger kan det hende at en funksjon ikke krever alle parametere for å beregne et resultat. I dette tilfellet kan du bruke nøkkelordet Valgfri foran parameternavnet i funksjonsoverskriften. Du kan bruke IsMissing (parameternavn) i koden for å bestemme om en verdi er tilordnet parameteren eller ikke.
- Hvis du ikke vet hvordan du skal skrive koden for en funksjon, kan du lese Hvordan skrive en enkel makro i Microsoft Excel.
- Bruk et navn som ennå ikke er definert som et funksjonsnavn i Excel, ellers vil du bare kunne bruke en av funksjonene.
Advarsler
- På grunn av sikkerhetstiltak kan noen deaktivere makroer. La kollegene dine vite at boken du sender har makroer og kan stole på, da de ikke vil skade datamaskinene dine.
- Funksjonene som brukes i denne artikkelen er ikke den beste måten å løse de nevnte problemene på. De ble bare brukt for å forklare bruken av språkkontrollstrukturer.
- VBA, som alle andre språk, har flere andre kontrollstrukturer i tillegg til Do, If og For. Disse ble forklart her bare for å avklare hva som kan gjøres innenfor funksjonens kildekode. Det er mange online veiledninger tilgjengelig der du kan lære VBA.