Come creare una funzione fattoriale in vba (con esempio)


Un fattoriale è il prodotto di tutti i numeri interi positivi minori o uguali a un dato numero intero positivo.

Ad esempio, il fattoriale 5 (scritto 5!) si calcola come:

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

È possibile utilizzare la seguente sintassi per creare una funzione fattoriale in VBA:

 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

Dopo aver creato questa funzione, puoi digitare qualcosa come =FindFactorial(A2) in una cella in Excel per trovare il fattoriale dell’intero nella cella A2 .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: creare una funzione fattoriale in VBA

Supponiamo di avere il seguente elenco di numeri in Excel e di voler calcolare il fattoriale di ciascun numero:

Possiamo definire la seguente funzione in VBA per fare ciò:

 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

Una volta creata questa funzione, possiamo digitare la seguente formula nella cella B2 per calcolare il fattoriale del valore nella cella A2 :

 =FindFactorial( A2 )

Possiamo quindi fare clic e trascinare questa formula su ciascuna cella rimanente nella colonna B:

funzione fattoriale in VBA

Tieni presente che la colonna B ora mostra il fattoriale di ciascun numero intero nella colonna A.

Per esempio:

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

E così via.

Nota : per calcolare un fattoriale in Excel senza utilizzare VBA, è possibile utilizzare la funzione FACT .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come aggiungere valori in un intervallo
VBA: come calcolare il valore medio dell’intervallo
VBA: come contare il numero di righe nell’intervallo

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *