Sammendrag
I versjonene av Microsoft Excel som er oppført i delen Gjelder for, kan du opprette en brukerdefinert funksjon som returnerer en egendefinert beregning ved hjelp av Visual Basic for Applications. Brukerdefinerte funksjoner kan imidlertid ikke utføre handlinger som endrer Microsoft Excel-miljøet når de kalles opp av en formel i en regnearkcelle.
Mer informasjon
En brukerdefinert funksjon kalt av en formel i en regnearkcelle kan ikke endre miljøet i Microsoft Excel. Dette betyr at en slik funksjon ikke kan gjøre noe av følgende:
-
Sette inn, slette eller formatere celler i regnearket.
-
Endre verdien til en annen celle.
-
Flytte, gi nytt navn til, slette eller legge til ark i en arbeidsbok.
-
Endre noen av miljøalternativene, for eksempel beregningsmodus eller skjermvisninger.
-
Legge til navn i en arbeidsbok.
-
Angi egenskaper eller utfør de fleste metoder.
Formålet med brukerdefinerte funksjoner er å la brukeren opprette en egendefinert funksjon som ikke er inkludert i funksjonene som leveres med Microsoft Excel. Funksjonene som er inkludert i Microsoft Excel, kan heller ikke endre miljøet. Funksjoner kan utføre en beregning som returnerer enten en verdi eller tekst til cellen de skrives inn i. Eventuelle miljøendringer bør gjøres ved bruk av en Visual Basic-underrutine. Under beregningen undersøker Excel overordnede celler som inneholder en brukerdefinert funksjon. Hvis ikke alle overordnede verdier har blitt beregnet så langt under beregningsprosessen, kaller Excel etter hvert opp den brukerdefinerte funksjonen og sender en null- eller tom celle til funksjonen. Excel sørger deretter for at det oppstår nok beregningstrinn for alle overordnede verdier som skal beregnes. Under det siste beregningstrinnet sendes den brukerdefinerte funksjonen de gjeldende verdiene i cellene. Dette kan føre til at den brukerdefinerte funksjonen kalles oftere enn forventet, og med uventede argumenter. Den brukerdefinerte funksjonen kan derfor returnere uventede verdier.For riktig beregning skal alle områder som brukes i beregningen, sendes til funksjonen som argumenter. Hvis du ikke sender beregningsområder som argumenter, i stedet for å referere til områdene i VBA-koden for funksjonen, kan ikke Excel gjøre rede for dem i beregningsmotoren. Excel kan derfor ikke beregne arbeidsboken tilstrekkelig for å sikre at alle overordnede verdier beregnes før den brukerdefinerte funksjonen beregnes.
Referanser
"Visual Basic User's Guide" versjon 5.0, kapittel 4, "Hva er en Visual Basic-prosedyre" "Skrive en brukerdefinert regnearkfunksjon", Microsoft Excel 7.0 Visual Basic-hjelpefil.