Användardefinierad funktion i VBA - Hur skapar man UDF? (Exempel)

Excel VBA användardefinierad funktion (UDF)

Microsoft serverar oss med många inbyggda funktioner för att påskynda arbetet i Excel. Men med hjälp av VBA-kodning kan vi skapa egna funktioner och dessa funktioner kallas tekniskt ”User-Defined Functions” (UDF). De kallas också som "anpassade funktioner" i excel VBA.

Varje formel som kan nås från kalkylbladet med en kod kallas UDF. Enkelt uttryckt kallas vilken formel som inte är inbyggd men tillgänglig i Excel Användardefinierade funktioner.

Hur skapar man användardefinierade funktioner?

Även om UDF är en del av vår modul är de inte en del av vår vanliga subrutin i VBA. Detta kallas ett funktionsförfarande i VBA. Liksom hur vi startar makrokodningen med ordet SUB på samma sätt, måste vi börja detta med ordet "Funktion". Underproceduren har start och slut, på samma sätt har Funktionsprocedur start och slut.

Exempel nr 1 - Skapa en enkel UDF-sumfunktion

Vi skapar vår egen SUM-funktion i Excel genom att lägga till två nummer.

  • För att starta kodningen, starta ordet “Funktion” i en av modulerna.
  • Liksom hur vi namnge makrot på samma sätt, måste vi också ge ett namn till vår funktion. Detta namn används som ett formelnamn.

Till skillnad från subrutin kan vi inte bara trycka på enter för att skapa ett förfarande, men vi måste nämna argument här.

Titta till exempel på syntaxen nedan för kalkylfunktionen SUM.

Nummer 1, nummer 2 är argument för funktionen SUM.

  • På samma sätt måste vi nämna våra argument.

Här har jag förklarat argumenten som "x som heltal" och "y som heltal." Eftersom vi lägger till numeriskt värde måste vi bara tilldela datatypen som en numerisk datatyp.

Efter att ha förklarat argumenten har jag också tilldelat returtypen för heltalet eftersom resultatet som ges av funktionen ”OurSum” också är ett numeriskt värde.

  • Nu i funktionen måste vi nämna formeln vi ska använda. Här måste vi använda funktionen till att börja med.

Vi nämnde formelnamnetOurSum ” ska lägga till x och y.

  • Ok, spara koden och gå till kalkylbladet.
  • Jag har angett några siffror här. Öppna likhetstecken och börja skriva OurSum. Du kan se formelnamnet som visas här.
  • Gilla hur vi väljer celler på samma sätt markerar två celler separat.
  • När du har valt två celler trycker du på Enter-tangenten för att få resultat.

Så det fungerar exakt samma som vår vanliga SUM-funktion.

  • Okej, nu ska jag ändra siffrorna.
  • Nu igen kommer jag att tillämpa den funktion vi har skapat.

Åh!!! Vi har felvärden förutom den första cellen.

Du måste fundera på varför vi fick ett fel.

Om du observerar cellerna A2 och B2 har vi värdena 48170 och 21732. Eftersom vi har tilldelat datatypen som heltal kan den inte innehålla något nummer mer än 32767. Detta är anledningen till att vi fick excelfelet som #NUM !.

Nu ska jag lägga till siffror som är mindre än 32767.

I bilden ovan är alla siffror heltal, dvs. mindre än 32767.

I den första cellen fick vi resultaten. Men i den andra cellen, dvs. C2-cellen, fick vi felvärdet som #VÄRDE !.

Även om båda siffrorna är mindre än 32767 har vi fortfarande felet.

Detta beror på att vi har förklarat slutresultatet också som heltal.

Så när vi lägger till 16000 och 17229 får vi ett värde som 33229, vilket är mer än heltalets datatypgräns 32767. Så slutresultatet är ett felvärde.

Exempel # 2 - Skapa en funktion för att testa logiska värden

Vi skapar ytterligare en funktion för att testa de logiska värdena. Vi behöver en funktion som returnerar “Bra” om siffran är> = 60, och vi behöver resultatet som “Dåligt” om siffran är <= 50.

Steg 1: Starta funktionsproceduren och ge proceduren ett namn.

Steg 2: Ge argumentet som TestScore som Integer.

Steg 3: Vårt slutresultat ska vara antingen "Bra" eller "Dåligt", så resultatet ska vara i sträng.

Steg 4: Först måste vi testa om poängen är> = 60 eller inte. Använd IF-tillstånd för att testa.

Steg 5: Om testresultatet är> = 60 behöver vi funktionen för att returnera resultatet som "Bra". Så TestResult = “Bra.”

Steg 6: Om testresultatet är mindre än 60, ska funktionsresultatet vara "dåligt".

Okej, vi är klara.

  • Spara koden och gå till kalkylbladet.

Jag har angett några siffror här som ett testresultat.

  • Tillämpa den funktion vi har skapat för att nå resultat.
  • Välj cellen och tryck enter.

Det här är vad UDF handlar om.

Intressanta artiklar...