Oprettelse af (brugerdefinerede) brugerdefinerede funktioner (UDF'er)

Denne vejledning forklarer, hvordan du opretter brugerdefinerede funktioner i VBA.

VBA består af delprocedurer og funktionsprocedurer. Funktionsprocedurer returnerer en værdi og kan kaldes til underprocedurer eller kan bruges i Excel -arket, hvor værdien, som funktionen producerer, returneres til Excel -arket. Excel har naturligvis en række indbyggede funktioner - som sumfunktionen eller If -funktionen. De funktionsprocedurer, du skriver i VBA, bruges på samme måde som den indbyggede funktion og er kendt som User Defined Functions (UDF'er).

Hvorfor oprette en UDF?

Påkrævet funktion mangler

En af hovedårsagerne til, at du ønsker at oprette en UDF i Excel, er, at der ikke er en eksisterende indbygget funktion, der gør opgaven for dig. At skrive din egen funktion i VBA er normalt den mest effektive måde at løse problemet på. Funktionen herunder konverterer en værdi fra kilogram til pund, hvor en variabel parameter (dblKilo) bruges til at opnå værdien af ​​kilo for at kunne foretage beregningen.

Udskift en underrutine (makro)

Du kan skrive en underprocedure (makro) for at løse opgaven for dig - men delprocedurer returnerer ikke en værdi, og de er ikke dynamiske - med andre ord, hvis værdierne i dit regneark ændres, skal du genkøre makro, for at beregningerne i makroen kan opdatere dine data. Underproceduren herunder vil også konvertere vores kilo til pund, men hver gang dataene ændres i A1, skal du genkøre makroen for at opdatere resultatet.

Udskift en formel

Du har muligvis en virkelig kompliceret formel i Excel, som du skal bruge gentagne gange - at sætte formlen i VBA -kode gør det lettere at læse og forstå - samt måske fjerne plads til brugerfejl, når du skriver formlen.

Oprettelse af UDF'er

For at oprette en UDF skal du først føje et modul til enten din Excel -projektmappe, eller hvis du har en personlig makro -projektmappe, kan du enten bruge et eksisterende modul derinde eller tilføje i en ny. For at gøre dette skal du være i Visual Basic Editor (VBE). For at komme til VBE, tryk på ALT + F11 eller klik på Visual Basic Option på fanen Udvikler på dit bånd.

TIP: Hvis du ikke har fanen Udvikler aktiveret på dit bånd, skal du gå til Fil, indstillinger og klik på Tilpas bånd. Sørg for, at afkrydsningsfeltet Udvikler er markeret, og klik på OK.

For at indsætte et nyt modul skal du vælge det VBA -projekt, du vil indsætte modulet i (enten VBA -projektet for den aktuelle bog, du arbejder i, eller den personlige makro -projektmappe), klik på Indsæt Menu, og klik Modul

Når du har oprettet dit modul, kan du begynde at oprette din UDF.

Alle UDF'er starter med Funktion og derefter navnet på UDF'en. Funktioner kan være private eller offentlige, men normalt vil du gerne have, at en UDF er offentlig, så de vises i dialogboksen Indsæt funktion i Excel (se brug af en funktion indefra et Excel -ark længere nede i denne artikel). Hvis du ikke sætter det private søgeord foran funktionen, er funktionen automatisk offentlig.

123 Funktion TestFunction1 (intA som heltal) Som heltalTestFunction1 = intA * 7Afslut funktion

Funktionen ovenfor har et enkelt argument (intA). Du kan oprette en funktion med flere argumenter

123 Funktion TestFunction2 (intA som heltal, intB som heltal, intC som heltal) Som heltalTestFunction2 = (intA * intB) + intCAfslut funktion

Du kan også oprette en funktion med valgfrie argumenter. Hvis argumentet udelades, kan du angive en standardværdi for argumentet i funktionen.

123 Funktion TestFunction3 (intA som heltal, intB som heltal, valgfri intC som heltal = 10) som heltalTestFunction3 = (intA * intB) + intCAfslut funktion

Brug af en funktion fra et Excel -ark

De funktioner, du har oprettet, vises som standard på din funktionsliste i sektionen Brugerdefineret på funktionslisten.

Klik på fx for at vise dialogboksen Indsæt funktion.

Vælg Brugerdefineret fra kategorilisten

Vælg den ønskede funktion blandt de tilgængelige Brugerdefinerede funktioner.

Alternativt, når du begynder at skrive din funktion i Excel, skal funktionen vises på rullelisten med funktioner.

Gem funktionerne med din Excel -fil

Da funktioner er skrevet i VBA -kode, er det givet, at koden skal være tilgængelig for projektmappen for at være tilgængelig til brug i Excel -arket. Du kan enten gemme dine funktioner i den projektmappe, du bruger dem i, eller du kan gemme dem i din personlige makro -projektmappe. Din personlige makro -projektmappe er en skjult fil, der er tilgængelig, når Excel er åbent, og derfor tilgængelig for enhver projektmappe i Excel til brug. Det oprettes normalt, når du optager en makro og vælger muligheden for at gemme makroen i den personlige makro -projektmappe.

Hvis du vil beholde dine funktioner i den projektmappe, du arbejder på, skal du sørge for, at når du gemmer projektmappen, gemmes den som en ‘Makroaktiveret projektmappe’Eller en xlsm fil.

wave wave wave wave wave