Per impostazione predefinita, (link : / VBA-esempi-definita dall’utente-funzione [funzioni definite dall’utente]) di UDF in Excel VBA non sono volatili. Essi vengono ricalcolate solo quando uno degli argomenti della funzione di cambio. Una funzione volatile è ricalcolato ogni volta che si verifica calcolo in qualsiasi cella del foglio. Diamo un’occhiata a un esempio semplice per spiegare questo un po ‘di più.

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

Creare una funzione chiamata MyFunction che restituisce la somma della cella selezionata e la cella di sotto di questo cellulare.

  1. Aggiungere le seguenti righe di codice:

Function MYFUNCTION(cell As Range)

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function
  1. Ora è possibile utilizzare questa funzione, come qualsiasi altra funzione di Excel.

Non-volatile Function in Excel VBA

  1. Questa è una funzione non-volatile. funzioni non-volatili vengono ricalcolate solo quando uno dei cambiamenti argomenti della funzione. Modificare il valore della cella B2 per 8.

Function’s Argument Changes

  1. Ora modificare il valore della cella B3 a 11.

Any Other Cell Changes

Spiegazione: la funzione non-volatile non viene ricalcolata quando qualsiasi altra cella sul foglio cambia.

  1. Aggiornare la funzione come segue per rendere la funzione volatile:

Function MYFUNCTION(cell As Range)

Application.Volatile

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function
  1. Modificare il valore della cella B3 a 12.

Risultato:

Volatile Function in Excel VBA

Nota: è necessario inserire la funzione di nuovo per rendere più volatili (o aggiornarlo posizionando il cursore nella barra della formula e premendo Invio).