Excel VBA-flyktiga funktioner
Som standard är UDF: s (Användardefinierade funktioner) i Excel VBA är inte flyktiga. De omräknas bara när någon av funktionens argument ändras. A flyktig funktion kommer att omräknas när beräkning sker i några celler på arbetsbladet. Låt oss ta en titt på ett enkelt exempel för att förklara detta lite mer.
1. Öppna Visual Basic Editor och klicka på Insert, Module.
Skapa en funktion som heter MYFUNCTION som returnerar summan av den valda cellen och cellen under den här cellen.
2. Lägg till följande kodlinjer:
MYFUNCTION = cell.Value + cell.Offset(1, 0).Value
End Function
3. Nu kan du använda den här funktionen, precis som alla andra Excel-funktioner.
4. Detta är en icke-flyktig funktion. Icke-flyktiga funktioner räknas om endast när någon av funktionens argument ändras. Ändra värdet av cell B2 till 8.
5. Ändra nu värdet av cell B3 till 11.
Förklaring: Den icke-flyktiga funktionen omräknas inte när någon annan cell på arket ändras.
6. Uppdatera funktionen enligt följande för att göra funktionen flyktig:
Application.Volatile
MYFUNCTION = cell.Value + cell.Offset(1, 0).Value
End Function
7. Ändra värdet av cell B3 till 12.
Resultat:
Obs! Du måste ange funktionen igen för att göra den flyktig (eller uppdatera den genom att placera markören i formulärfältet och tryck på enter).