Brugerdefineret funktion i VBA - Hvordan oprettes UDF? (Eksempler)

Excel VBA brugerdefineret funktion (UDF)

Microsoft serverer os med mange indbyggede funktioner til at fremskynde arbejdet i Excel. Men ved hjælp af VBA-kodning kan vi oprette vores egne funktioner, og disse funktioner kaldes teknisk "brugerdefinerede funktioner" (UDF). De kaldes også som “brugerdefinerede funktioner” i excel VBA.

Enhver formel, der kan tilgås fra regnearket med et stykke kode kaldes UDF. Enkelt sagt kaldes enhver formel, der ikke er indbygget, men tilgængelig i Excel, brugerdefinerede funktioner.

Hvordan oprettes brugerdefinerede funktioner?

Selvom UDF er en del af vores modul, er de ikke en del af vores almindelige subrutine i VBA. Dette kaldes en funktionsprocedure i VBA. Ligesom hvordan vi starter makrokodningen med ordet SUB på samme måde, er vi nødt til at starte dette ved at bruge ordet "Funktion." Underproceduren har start og slut, ligesom Funktionsprocedure har start og slut.

Eksempel # 1 - Opret en simpel UDF-sumfunktion

Vi opretter vores egen SUM-funktion i Excel ved at tilføje to tal.

  • For at starte kodningen skal du starte ordet “Funktion” i et af modulerne.
  • Ligesom hvordan vi navngiver makroen på samme måde, er vi også nødt til at give et navn til vores funktion. Dette navn bruges som et formelnavn.

I modsætning til subrutine kan vi ikke bare trykke på enter for at oprette en procedure, men vi skal nævne argumenter her.

Se f.eks. Nedenstående syntaks for regnearkfunktionen SUM.

Nummer 1, nummer 2 er argumenter for funktionen SUM.

  • På samme måde skal vi nævne vores argumenter.

Her har jeg erklæret argumenterne som “x som heltal” og “y som heltal.” Da vi tilføjer numerisk værdi, skal vi kun tildele datatypen som en numerisk datatype.

Efter at have erklæret argumenterne har jeg også tildelt returtypen af ​​heltal, fordi resultatet givet af funktionen "OurSum" også er en numerisk værdi.

  • Nu inde i funktionen skal vi nævne den formel, vi skal bruge. Her skal vi bruge funktionen til at starte med.

Vi nævnte formelnavnetOurSum ” skal tilføje x og y.

  • Ok, gem koden, og gå til regnearket.
  • Jeg har indtastet et par numre her. Åbn lighedstegn og start med at skrive OurSum. Du kan se formelnavnet, der vises her.
  • Ligesom hvordan vi vælger celler, vælger vi ligeledes to celler separat.
  • Når du har valgt to celler, skal du trykke på Enter-tasten for at få resultater.

Så det fungerer nøjagtigt det samme som vores almindelige SUM-funktion.

  • Ok, nu vil jeg ændre numrene.
  • Nu igen vil jeg anvende den funktion, vi har oprettet.

Åh !!! Vi fik fejlværdier bortset fra den første celle.

Du må tænke over, hvorfor vi fik en fejl.

Hvis du observerer cellen A2 og B2, har vi værdierne 48170 og 21732. Da vi har tildelt datatypen som heltal, kan den ikke indeholde noget nummer mere end 32767. Dette er grunden til, at vi fik excel-fejlen som #NUM !.

Nu vil jeg tilføje tal, der er mindre end 32767.

I ovenstående billede er alle tallene heltal, dvs. mindre end 32767.

I den første celle fik vi resultaterne. Men i den anden celle, dvs. C2-celle, fik vi fejlværdien som #VÆRDI !.

Selvom begge numre er mindre end 32767, har vi stadig fejlen.

Dette skyldes, at vi også har erklæret slutresultatet som heltal.

Så når vi tilføjer 16000 og 17229, får vi en værdi som 33229, hvilket er mere end heltalets datatypegrænse på 32767. Så slutresultatet er en fejlværdi.

Eksempel 2 - Opret en funktion til test af logiske værdier

Vi opretter endnu en funktion til at teste de logiske værdier. Vi har brug for en funktion, der returnerer "God", hvis tallet er> = 60, og vi har brug for resultatet som "Dårligt", hvis tallet er <= 50.

Trin 1: Start funktionsproceduren, og giv proceduren et navn.

Trin 2: Giv argumentet som TestScore som Integer.

Trin 3: Vores slutresultat skal være enten "God" eller "Dårlig", så resultatet skal være i streng.

Trin 4: Først skal vi teste, om scoren er> = 60 eller ej. Brug IF-tilstand til at teste.

Trin 5: Hvis testresultatet er> = 60, har vi brug for funktionen til at returnere resultatet som "Godt". Så TestResult = “Godt.”

Trin 6: Hvis testresultatet er mindre end 60, skal funktionsresultatet være "Dårligt".

Okay, vi er færdige.

  • Gem koden, og gå til regnearket.

Jeg har indtastet et par numre her som en testscore.

  • Anvend den funktion, vi har oprettet for at nå resultater.
  • Vælg cellen, og tryk på Enter.

Dette er hvad UDF handler om.

Interessante artikler...