/ / Door de gebruiker gedefinieerde functie in Excel VBA

Door de gebruiker gedefinieerde functie in Excel VBA

Hieronder zullen we een programma bekijken in Excel VBA dat creëert een Door de gebruiker gedefinieerde functie. Excel heeft een grote verzameling functies. In de meeste situaties zijn die functies voldoende om de klus te klaren. Als dat niet het geval is, kunt u uw eigen functie maken, genaamd Door gebruiker gedefinieerde functie of aangepaste Excel-functie. U kunt toegang krijgen tot een door de gebruiker gedefinieerde functie, net als elke andere Excel-functie.

We willen een functie maken met de naam SUMEVENNUMBERS die de som van de even nummers van een willekeurig geselecteerd bereik vindt.

Situatie:

Door de gebruiker gedefinieerde functie in Excel VBA

Door de gebruiker gedefinieerde functies moeten in een module worden geplaatst.

1. Open de Visual Basic-editor en klik op Invoegen, Module.

2. Voeg de volgende coderegel toe:

Function SUMEVENNUMBERS(rng As Range)

De naam van onze functie is SUMEVENNUMBERS. Het gedeelte tussen de haakjes betekent dat we Excel VBA een bereik geven als invoer. We noemen ons bereik rng, maar u kunt elke naam gebruiken.

3. Vervolgens declareren we een Range-object en noemen het cel.

Dim cell As Range

4. We willen elke cel in een willekeurig geselecteerd bereik controleren (dit bereik kan elke grootte hebben). In Excel VBA kunt u daarvoor de For Each Next-lus gebruiken. Voeg de volgende coderegels toe:

For Each cell In rng

Next cell

Opmerking: cel is hier willekeurig gekozen, u kunt elke naam gebruiken.

5. Vervolgens controleren we voor elke waarde in dit bereik of deze gelijk is of niet. Hiervoor gebruiken we de Mod-operator. De Mod-operator geeft de rest van een divisie. Dus 7 mod 2 zou geven 1. 7 wordt gedeeld door 2 (3 keer) om een ​​rest van 1 te geven. Dit gezegd hebbende, is het eenvoudig om te controleren of een getal gelijk is of niet. Alleen als de rest van een getal gedeeld door 2 0 is, is het aantal even. 8 mod 2 geeft 0, 8 is precies 4 keer gedeeld door 2 en daarom is 8 gelijk. Voeg de volgende If-instructie toe aan de For Each Next-lus.

If cell.Value Mod 2 = 0 Then

End If

6. Alleen als deze verklaring waar is, voegen we de waarde toe aan SUMEVENNUMBERS. Voeg de volgende coderegel toe in de If-instructie.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value

7. Vergeet niet om de functie te beëindigen (buiten de loop).

End Function

8. Nu kunt u deze functie gebruiken, net zoals bij elke andere Excel-functie, om de som van de even nummers van een willekeurig geselecteerd bereik te vinden.

Resultaat:

Resultaat door gebruikersgedefinieerde functie

Goed gedaan! Dat is hoe eenvoudig User Defined Functions in Excel VBA zijn Opmerking: deze functie is alleen beschikbaar in deze werkmap.

Lees ook: