/ / Excel VBA flygtige funktioner

Excel VBA flygtige funktioner

Som standard er UDF'er (Brugerdefinerede funktioner) i Excel VBA er ikke flygtige. De genberegnes kun, når en af ​​funktionens argumenter ændres flygtig funktion vil blive genberegnet, når beregningen sker i nogen celler på regnearket. Lad os tage et kig på et let eksempel for at forklare dette lidt mere.

1. Åbn Visual Basic Editor og klik på Insert, Modul.

Opret en funktion kaldet MYFUNCTION, som returnerer summen af ​​den valgte celle og cellen under denne celle.

2. Tilføj følgende kode linjer:

Function MYFUNCTION(cell As Range)

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

End Function

3. Nu kan du bruge denne funktion, ligesom enhver anden Excel-funktion.

Ikke-flygtig funktion i Excel VBA

4. Dette er en ikke-flygtig funktion. Ikke-flygtige funktioner genberegnes kun, når en af ​​funktionens argumenter ændres. Skift værdien af ​​celle B2 til 8.

Fungere

5. Skift nu værdien af ​​celle B3 til 11.

Enhver anden celleændring

Forklaring: Den ikke-flygtige funktion genberegnes ikke, når en anden celle på arket ændres.

6. Opdater funktionen som følger for at gøre funktionen flygtig:

Function MYFUNCTION(cell As Range)

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

End Function

7. Skift værdien af ​​celle B3 til 12.

Resultat:

Flygtige funktion i Excel VBA

Bemærk: Du skal indtaste funktionen igen for at gøre den flygtig (eller opdatere den ved at placere markøren i formellelinjen og trykke på Enter).

Læs også: