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:
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.
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.
5. Acum modificați valoarea celulei B3 la 11.
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ă:
Application.Volatile
MYFUNCTION = cell.Value + cell.Offset(1, 0).Value
End Function
7. Modificați valoarea celulei B3 la 12.
Rezultat:
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).