/ / Excel VBA flyktige funksjoner

Excel VBA flyktige funksjoner

Som standard er UDF s (User Defined Functions) i Excel VBA er ikke flyktige. De omberegnes bare når noen av funksjonens argumenter endres. A flyktig funksjon vil bli omregnet når beregning skjer i noen celler på regnearket. La oss se på et enkelt eksempel for å forklare dette litt mer.

1. Åpne Visual Basic Editor og klikk Insert Insert, Module.

Opprett en funksjon som heter MYFUNCTION som returnerer summen av den valgte cellen og cellen under denne cellen.

2. Legg til følgende kodelinjer:

Function MYFUNCTION(cell As Range)

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

End Function

3. Nå kan du bruke denne funksjonen, akkurat som alle andre Excel-funksjoner.

Ikke-flyktig funksjon i Excel VBA

4. Dette er en ikke-flyktig funksjon. Ikke-flyktige funksjoner blir bare omberegnet når noen av funksjonens argumenter endres. Endre verdien av celle B2 til 8.

Funksjon

5. Endre verdien av celle B3 til 11.

Eventuelle andre celleendringer

Forklaring: Den ikke-flyktige funksjonen beregnes ikke når noen annen celle på arket endres.

6. Oppdater funksjonen som følger for å gjøre funksjonen flyktig:

Function MYFUNCTION(cell As Range)

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

End Function

7. Endre verdien av celle B3 til 12.

Resultat:

Flyktig funksjon i Excel VBA

Merk: Du må skrive inn funksjonen igjen for å gjøre den flyktig (eller oppdatere den ved å plassere markøren i formellinjen og trykke på enter).

Les også: