Innholdsfortegnelse:
Video: Slik utfører du et markløft 2025
I VBA programmering returnerer en funksjon en verdi. Du kan utføre Funksjonsprosedyrer og ringe funksjonen i Excel 2016. Funksjoner, i motsetning til Sub prosedyrer, kan utføres på to måter:
-
Ved å ringe funksjonen fra en annen Sub prosedyre eller Funksjon prosedyre
-
Ved å bruke funksjonen i en regnearkformel
Prøv denne enkle funksjonen. Skriv inn den i en VBA-modul:
Funksjon CubeRoot (nummer) CubeRoot = tall ^ (1/3) Sluttfunksjon
Denne funksjonen er ganske wimpy; det beregner bare kubusroten av nummeret som er sendt til det som argument. Det gir imidlertid et utgangspunkt for å forstå funksjoner. Det illustrerer også et viktig konsept om funksjoner: hvordan å returnere verdien. (Du husker at en funksjon returnerer en verdi, ikke sant?)
Legg merke til at enkeltlinjen med kode som utgjør denne funksjonsprosedyren, utfører en beregning. Resultatet av matematikken (tall til kraften på 1/3) er tilordnet variabelen CubeRoot. Ikke tilfeldigvis er CubeRoot også navnet på funksjonen. For å fortelle funksjonen hvilken verdi som skal returneres, tilordner du denne verdien til navnet på funksjonen.
Ringe funksjonen fra en Sub-prosedyre
Fordi du ikke kan utføre en funksjon direkte, må du ringe den fra en annen prosedyre. Skriv inn følgende enkle fremgangsmåte i samme VBA-modul som inneholder CubeRoot-funksjonen:
Dette skjer: CubeRoot-funksjonen utføres, og den mottar et argument på 125. Beregningen utføres av funksjonens kode (ved bruk av verdien som er overført som argument), og funksjonens returnerte verdi er tilordnet til Ans-variabel. MsgBox-funksjonen viser deretter verdien av Ans-variabelen.Prøv å endre argumentet som er sendt til CubeRoot-funksjonen, og kjør CallerSub-makroen på nytt. Det fungerer akkurat som det skal - forutsatt at du gir funksjonen et gyldig argument (et positivt tall).
Forresten, kan CallerSub-prosedyren bli forenklet litt. Ans-variabelen er ikke nødvendig, med mindre koden din vil bruke den variabelen senere. Du kan bruke denne enkelte setningen for å oppnå det samme resultatet:
MsgBox CubeRoot (125)
Kaller en funksjon fra en regnearkformel
Nå er det på tide å ringe denne VBA-funksjonen fra en regnearkformel.Aktiver et regneark i samme arbeidsbok som inneholder CubeRoot-funksjonen definisjonen. Skriv deretter inn følgende formel i en hvilken som helst celle:
= CubeRoot (1728)
Cellen viser 12, som faktisk er kube-roten på 1, 728.
Som du kanskje forventer, kan du bruke en cellereferanse som argumentet for CubeRoot-funksjonen. For eksempel, hvis celle A1 inneholder en verdi, kan du skrive inn
= CubeRoot (A1)
. I dette tilfellet returnerer funksjonen tallet som er oppnådd ved å beregne kubusroten av verdien i A1. Du kan bruke denne funksjonen et hvilket som helst antall ganger i regnearket. Som Excels innebygde funksjoner vises dine tilpassede funksjoner i dialogboksen Sett inn funksjon. Klikk på Sett inn verktøylinjeknapp, og velg kategorien Brukerdefinert. Dialogboksen Sett inn funksjon viser din egen funksjon. Funksjonen CubeRoot vises i kategorien Brukerdefinert i dialogboksen Sett inn funksjon.
Følg disse trinnene hvis du vil at dialogboksen Sett inn funksjon skal vise en beskrivelse av funksjonen:
Excel viser dialogboksen Makro, men CubeRoot vises ikke i listen. (CubeRoot er en funksjonsprosedyre, og denne listen viser kun Sub prosedyrer.) Ikke bekymre deg.
-
Skriv ordet CubeRoot i Makro Name-boksen.
Klikk på Alternativer-knappen.
-
Skriv inn en beskrivelse av funksjonen i beskrivelsesboksen.
-
Klikk OK for å lukke dialogboksen Makroalternativer.
-
Lukk makro-dialogboksen ved å klikke på Avbryt-knappen.
-
Denne beskrivende teksten vises nå i dialogboksen Sett inn funksjon.
-
Sjekk ut CubeRoot-funksjonen som brukes i regnearkformler.
Bruk CubeRoot-funksjonen i formler.
