Een factoriële functie maken in vba (met voorbeeld)


Een faculteit is het product van alle positieve gehele getallen kleiner dan of gelijk aan een bepaald positief geheel getal.

De 5-faculteit (geschreven 5!) wordt bijvoorbeeld als volgt berekend:

  • 5! = 5 * 4 * 3 * 2 * 1 = 120

U kunt de volgende syntaxis gebruiken om een faculteitsfunctie in VBA te maken:

 Function FindFactorial(N As Integer) As Double

 Dim i As Integer, result As Long
 
 result = 1

 For i = 1 To N
     result = result * i
 Next

 FindFactorial = result

End Function

Nadat u deze functie hebt gemaakt, kunt u iets als =FindFactorial(A2) in een cel in Excel typen om de faculteit van het gehele getal in cel A2 te vinden.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: maak een factoriële functie in VBA

Stel dat we de volgende lijst met getallen in Excel hebben en we willen de faculteit van elk getal berekenen:

We kunnen hiervoor de volgende functie in VBA definiëren:

 Function FindFactorial(N As Integer) As Double

 Dim i As Integer, result As Long
 
 result = 1

 For i = 1 To N
     result = result * i
 Next

 FindFactorial = result

End Function

Nadat we deze functie hebben gemaakt, kunnen we de volgende formule in cel B2 typen om de faculteit van de waarde in cel A2 te berekenen:

 =FindFactorial( A2 )

We kunnen vervolgens op deze formule klikken en deze naar elke resterende cel in kolom B slepen:

faculteitsfunctie in VBA

Merk op dat kolom B nu de faculteit van elk geheel getal in kolom A weergeeft.

Bijvoorbeeld:

  • 1! = 1
  • 2! = 2 * 1 = 2
  • 3! = 3 * 2 * 1 = 6
  • 4! = 4 * 3 * 2 * 1 = 24

Enzovoort.

Opmerking : om een faculteit in Excel te berekenen zonder VBA te gebruiken, kunt u de FACT- functie gebruiken.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:

VBA: waarden toevoegen in een bereik
VBA: Hoe de gemiddelde waarde van het bereik te berekenen
VBA: het aantal rijen binnen bereik tellen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert