/ / Excel VBA-flyktiga funktioner

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:

Function MYFUNCTION(cell As Range)

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.

Icke-flyktig funktion i Excel VBA

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.

Fungera

5. Ändra nu värdet av cell B3 till 11.

Alla andra cellförändringar

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:

Function MYFUNCTION(cell As Range)

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

End Function

7. Ändra värdet av cell B3 till 12.

Resultat:

Flyktig funktion i Excel VBA

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).

Läs också: