/ / "Excel VBA" lakios funkcijos

Excel VBA lakios funkcijos

Numatyta, kad UDF (vartotojo apibrėžtos funkcijos) Excel VBA nėra besikeičiančios. Jie perskaičiuojami tik kai pasikeičia bet kuri funkcija lakios funkcijos bus perskaičiuoti, kai skaičiavimas įvyks bet kuriame darbalapės lange. Leiskite pažiūrėti lengvą pavyzdį, kad paaiškintume šiek tiek daugiau.

1. Atidarykite Visual Basic Editor ir spustelėkite Insert, Module.

Sukurkite funkciją MYFUNCTION, kuri grąžina pasirinktos langelio ir langelio sumą po šia langeliu.

2. Įtraukite šias kodo eilutes:

Function MYFUNCTION(cell As Range)

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

End Function

3. Dabar galite naudoti šią funkciją, kaip ir bet kuri kita "Excel" funkcija.

Nelegandios funkcijos Excel VBA

4. Tai yra nepastovi funkcija. Neelektrinės funkcijos tik perskaičiuojamos, kai pasikeičia bet kokie funkcijos argumentai. Pakeiskite ląstelių B2 reikšmę į 8.

Funkcija

5. Dabar pakeiskite ląstelių B3 reikšmę į 11.

Bet kokie kiti ląstelių pokyčiai

Paaiškinimas: nepastovus funkcija nėra perskaičiuojama, kai keičiasi bet kuri kita lakšto lakšte.

6. Kad funkcija lakesnė, atnaujinkite funkciją taip:

Function MYFUNCTION(cell As Range)

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

End Function

7. Pakeiskite ląstelės B3 reikšmę iki 12.

Rezultatas:

Lakios funkcijos Excel VBA

Pastaba: reikia dar kartą įvesti funkciją, kad ji būtų nepastovi (arba ją atnaujinti, pateikiant kursorių į formulės juostą ir paspaudus enter).

Taip pat perskaitykite: