/ / Funcții volatile Excel VBA

Excel VBA Funcții volatile

În mod implicit, UDF (funcții definite de utilizator) în Excel VBA nu sunt volatile. Ele sunt recalculate doar atunci când oricare dintre argumentele funcției se modifică volatilă vor fi recalculate ori de câte ori are loc calculul în orice celule din foaia de lucru. Să aruncăm o privire la un exemplu simplu pentru a explica acest lucru un pic mai mult.

1. Deschideți Editorul Visual Basic și faceți clic pe Insert, Module.

Creați o funcție numită MYFUNCTION care returnează suma celulei selectate și celula de sub această celulă.

2. Adăugați următoarele linii de cod:

Function MYFUNCTION(cell As Range)

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

End Function

3. Acum puteți utiliza această funcție, la fel ca orice altă funcție Excel.

Funcția non-volatilă în Excel VBA

4. Aceasta este o funcție non-volatilă. Funcțiile non-volatile sunt recalculate numai atunci când oricare dintre argumentele funcției se modifică. Modificați valoarea celulei B2 la 8.

Funcţie

5. Acum modificați valoarea celulei B3 la 11.

Orice alte modificări ale celulelor

Explicație: funcția non-volatilă nu este recalculată atunci când se schimbă o altă celulă din foaie.

6. Actualizați funcția după cum urmează pentru a face funcția volatilă:

Function MYFUNCTION(cell As Range)

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

End Function

7. Modificați valoarea celulei B3 la 12.

Rezultat:

Funcția volatilă în Excel VBA

Notă: trebuie să introduceți funcția din nou pentru ao face volatilă (sau reîmprospătați-o prin plasarea cursorului în bara de formule și apăsând pe Enter).

De asemenea, citiți: