Indhold
Selvom Excel har mange, sandsynligvis hundreder af indbyggede funktioner som SUM, VLOOKUP, VENSTRE osv., Når du begynder at bruge Excel til mere komplicerede opgaver, finder du ofte, at du har brug for en funktion, der ikke findes. Bare rolig, alt er ikke tabt; alt hvad du behøver er at oprette den ønskede funktion.
Trin
- Opret en ny projektmappe, eller åbn projektmappen, hvor du vil bruge din nyoprettede brugerdefinerede funktion (FDU).
-
Åbn Visual Basic Editor som er indbygget i Microsoft Excel ved at gå til Værktøjer-> Makro-> Visual Basic Editor (eller ved at trykke på Alt + F11). -
Tilføj et nyt modul til din projektmappe ved at klikke på den angivne knap. Du kan oprette den brugerdefinerede funktion på selve regnearket uden at tilføje et nyt modul, men dette forhindrer dig i at bruge det på andre regneark i den samme projektmappe. -
Opret "header" eller "prototype" for din funktion. Du skal have følgende struktur: offentlig funktion TheNameOfYourFunction (param1 Som type1, param2 Som type2) Som returnType Der kan være så mange parametre som ønsket, og deres type kan være en hvilken som helst af de grundlæggende datatyper eller Excel-objekttyper som Range. Du kan tænke på parametre som de "operander", som din funktion vil reagere på. For eksempel, når du siger SIN (45) for at beregne sinus på 45 grader, tages 45 som en parameter. Derefter bruger din funktionskode denne værdi til at udføre nogle beregninger og præsentere resultatet. - Tilføj funktionskoden, og sørg for: 1) brug de værdier, der er angivet af parametrene; 2) tildel resultatet til funktionsnavnet; og 3) luk funktionen med "slutfunktion". Det kan tage noget tid at lære at programmere i VBA eller ethvert andet sprog og kræve en detaljeret vejledning. Funktioner har dog ofte små kodeblokke og bruger få sprogressourcer. De mest nyttige elementer i VBA-sproget er:
- Blokken Hvis, som kun giver dig mulighed for at køre en del af koden, hvis en betingelse er opfyldt. For eksempel:
Offentlig funktion CourseResult (gitter som heltal) som streng
Hvis karakter> = 5 Så
CourseResult = "Godkendt"
Andet
CourseResult = "Afvist"
Afslut Hvis
Afslut funktion
Bemærk elementerne i en kodeblok Hvis:HVIS-tilstand DAN-kode ELSE-kode END IF. Nøgleordet Andet sammen med den anden del af koden er valgfri.
- Blokken Af, der udfører et stykke kode Mens (mens) eller Så længe (indtil) en betingelse er opfyldt. For eksempel:
Offentlig funktion IsPrime (værdi som heltal) som boolsk
Dim jeg som heltal
i = 2
IsPrime = Sandt
Af
Hvis værdi / i = Int (værdi / i) Derefter
IsPrime = Falsk
Afslut Hvis
i = i + 1
Sløjfe mens jeg <værdi og IsPrime = sand
Afslut funktion
Se på elementerne igen:DO-kode LOOP WHILE / TIL tilstand. Bemærk også den anden linje, hvor en variabel "erklæres". Du kan tilføje variabler til din kode, så du kan bruge dem senere. Variabler fungerer som midlertidige værdier i koden. Endelig se på funktionserklæringen som BOOLEAN, som er en datatype, der kun tillader værdierne SAND og FALSK. Denne metode til at bestemme, om et tal er prime, er ikke ideel, men jeg foretrækker at lade det være for at gøre koden lettere at læse.
- Blokken Til, der udfører et stykke kode et angivet antal gange. For eksempel:
Faktor for offentlig funktion (værdi som heltal) så længe
Dæmpt resultat så længe
Dim jeg som heltal
Hvis værdi = 0 Så
resultat = 1
ElseIf værdi = 1 Derefter
resultat = 1
Andet
resultat = 1
For i = 1 Til værdi
resultat = resultat * i
Næste
Afslut Hvis
Faktor = resultat
Afslut funktion
Se på elementerne igen:FOR variabel = nedre grænse TIL øvre grænse kode NÆSTE. Bemærk også elementet Ellers hvis tilføjet i erklæringen Hvis, som giver dig mulighed for at tilføje flere muligheder for den kode, der skal udføres. Endelig skal du se på funktionserklæringen og variablen "resultat" som Lang. Datatypen Lang tillader meget højere værdier end 'Integer'.
Nedenfor er koden for en funktion, der konverterer tal til ord.
- Blokken Hvis, som kun giver dig mulighed for at køre en del af koden, hvis en betingelse er opfyldt. For eksempel:
- Gå tilbage til din projektmappe og brug funktionen ved at starte indholdet af en celle med en lige efterfulgt af navnet på din rolle. Føj en åbningsparentes til funktionsnavnet, parametrene adskilt af komma og en afsluttende parentes. For eksempel:= NumberToLetters (A4) Du kan også bruge din brugerdefinerede formel ved at søge efter den i kategorien Brugerdefineret i guiden for at indtaste formlen. Klik bare på knappen Fx placeret til venstre for formellinjen. Parametre kan være af tre typer:
- Konstant værdier indtastes direkte i celleformlen. Strenge skal være indeholdt i tilbud i dette tilfælde.
- Cellereferencer som B6 eller intervaller som A1: C3 (parameteren skal være af typen Pause"")
- Andre funktioner arrangeret inden for din funktion (din funktion kan også grupperes i andre funktioner). Det vil sige: = Faktor (MAX (D6: D8))
- Kontroller, om resultatet er OK efter brug af funktionen flere gange skal du sikre dig, at den håndterer forskellige parameterværdier korrekt:
Tips
- Når du skriver en kodeblok inden for en kontrolstruktur som f.eks. Hvis, For, Gør osv., Skal du huske at indrykke blokken ved hjælp af nogle blanke eller faner (indrykningstypen er op til dig).På denne måde bliver din kode lettere at forstå, og det vil være meget lettere at opdage fejl og forbedre koden.
- Excel har mange indbyggede funktioner, og de fleste beregninger kan udføres ved hjælp af dem alene eller i kombination. Søg på listen over tilgængelige funktioner, inden du starter din egen kode. Udførelse kan være hurtigere, hvis du bruger indbyggede funktioner.
- Nogle gange kræver en funktion muligvis ikke alle parametre for at beregne et resultat. I dette tilfælde kan du bruge nøgleordet Valgfri før parameternavnet i funktionsoverskriften. Du kan bruge Mangler (parameternavn) inden for koden for at bestemme, om en værdi er tildelt parameteren eller ej.
- Hvis du ikke ved, hvordan du skriver koden til en funktion, skal du læse Sådan skriver du en simpel makro i Microsoft Excel.
- Brug et navn, der endnu ikke er defineret som et funktionsnavn i Excel, ellers kan du kun bruge en af funktionerne.
Advarsler
- På grund af sikkerhedsforanstaltninger kan nogle mennesker deaktivere makroer. Fortæl dine kolleger, at den bog, du sender, har makroer og kan stole på, da de ikke beskadiger dine computere.
- Funktionerne i denne artikel er ikke den bedste måde at løse de nævnte problemer på. De blev kun brugt til at forklare brugen af sprogkontrolstrukturer.
- VBA har ligesom ethvert andet sprog flere andre kontrolstrukturer udover Do, If og For. Disse blev forklaret her bare for at afklare, hvad der kan gøres inden for funktionens kildekode. Der er mange online tutorials tilgængelige, hvor du kan lære VBA.