Di seguito vedremo un programma in Excel VBA che crea un’User Defined Function. Excel dispone di un ampio insieme di funzioni. Nella maggior parte delle situazioni tali funzioni sono sufficienti per ottenere il lavoro fatto. In caso contrario, è possibile creare il proprio funzione chiamata User Defined Function funzione di Excel personalizzato o. È possibile accedere a un User Defined Function come qualsiasi altra funzione di Excel.

Vogliamo creare una funzione chiamata SUMEVENNUMBERS che trova la somma dei numeri pari di un intervallo selezionato in modo casuale.

Situazione:

User Defined Function in Excel VBA

Le funzioni definite dall’utente devono essere collocati in un modulo.

  1. Aprire l’editor di Visual Basic e fare clic su Inserisci, Modulo.

  2. Aggiungere la seguente riga di codice:

Function SUMEVENNUMBERS(rng As Range)

Il nome della nostra funzione è SUMEVENNUMBERS. La parte tra le parentesi significa che diamo Excel VBA una gamma come input. Noi chiamiamo la nostra gamma RNG, ma è possibile utilizzare qualsiasi nome.

  1. Successivamente, si dichiara un oggetto Range e lo chiamano CELL.

Dim cell As Range
  1. Vogliamo controllare ogni cella in un intervallo selezionato casualmente (questo intervallo può essere di qualsiasi dimensione). In Excel VBA, è possibile utilizzare il ciclo For Each di questo componente. Aggiungere le seguenti righe di codice:

For Each cell In rng

Next cell

Nota: cellulare è scelto a caso qui, è possibile utilizzare qualsiasi nome.

  1. Successivamente, verificare la presenza di ogni valore in questo intervallo se è ancora o no. Usiamo l’operatore Mod per questo. L’operatore MOD dà il resto di una divisione. Quindi 7 mod 2 darebbe 1. 7 è diviso per 2 (3 volte) per dare un residuo di 1. Detto questo, è facile verificare se un numero è pari o meno. Solo se il resto di un numero diviso per 2 è 0, il numero è pari. 8 mod 2 dà 0, 8 è diviso per 2 esattamente 4 volte, e quindi 8 è pari. Aggiungere la seguente istruzione if per il ciclo For Each Avanti.

If cell.Value Mod 2 = 0 Then

End If
  1. Solo se questa affermazione è vera, aggiungiamo il valore per SUMEVENNUMBERS.

Aggiungere la seguente riga di codice nella dichiarazione If.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value
  1. Non dimenticare di terminare la funzione (al di fuori del ciclo).

End Function
  1. Ora è possibile utilizzare questa funzione, come qualsiasi altra funzione di Excel, per trovare la somma dei numeri pari di un intervallo selezionato in modo casuale.

Risultato:

User Defined Function Result

Molto bene! Ecco come semplici funzioni definite dall’utente in Excel VBA sono.

Nota: questa funzione è disponibile solo in questo lavoro.