/ / Excel VBA haihtuvat toiminnot

Excel VBA haihtuvat toiminnot

Oletuksena UDF: t (User Defined Functions) in Excel VBA eivät ole haihtuvia. Ne lasketaan uudelleen vain, jos jonkin funktion argumenttien muuttuessa haihtuva toiminto lasketaan uudelleen aina, kun laskenta tapahtuu mistä tahansa taulukon soluista. Katsotaanpa helppo esimerkki selittää tätä hieman enemmän.

1. Avaa Visual Basic Editor ja napsauta Insert, Module.

Luo funktio nimeltä MYFUNCTION, joka palauttaa valitun solun ja tämän solun alapuolella olevan solun summan.

2. Lisää seuraavat koodiluokat:

Function MYFUNCTION(cell As Range)

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

End Function

3. Nyt voit käyttää tätä toimintoa, kuten mikä tahansa muu Excel-toiminto.

Vahingoittumaton funktio Excel VBA: ssa

4. Tämä on haihtumaton toiminto. Muuttumattomat toiminnot lasketaan uudelleen vain, jos jonkin funktion argumenttien muutos muuttaa solun B2 arvoa arvoon 8.

Toimia

5. Muuta nyt solun B3 arvo 11: ksi.

Muut muutokset soluissa

Selitys: haihtumatonta funktiota ei lasketa uudelleen, kun muut arkissa olevat solut muuttuvat.

6. Voit päivittää toiminnon seuraavasti, jotta toiminto muuttuisi epävakaaksi:

Function MYFUNCTION(cell As Range)

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

End Function

7. Muuta solun B3 arvo 12: ksi.

Tulos:

Vahva funktio Excel VBA: ssa

Huomaa: sinun täytyy syöttää toiminto uudelleen, jotta se muuttuu haihtuvalta (tai päivitä se asettamalla kohdistin kaavapalkkiin ja painamalla Enter).

Lue myös: