Hvordan Execute VBA Funksjon Prosedyrer i Excel 2016

I VBA programmering, returnerer en funksjon en verdi. Du kan utføre Funksjon prosedyrer og kaller funksjonen i Excel 2016. funksjoner, i motsetning til Sub prosedyrer, kan kjøres på bare to måter:

Ved å kalle funksjonen fra en annen Sub prosedyre eller funksjon prosedyre

Ved å bruke funksjonen i et regneark formel

Prøv denne enkle funksjonen. Skriv det i en VBA-modul:
Funksjon CubeRoot (antall) CubeRoot = antall ^ (1/3) End Function

Denne funksjonen er ganske pysete; det bare beregner kubikkroten av antallet passerte til det som blir argumentet. Det gjør imidlertid, gir et utgangspunkt for å forstå funksjoner. Det illustrerer også et viktig begrep om funksjoner: hvordan å returnere verdien. (Du husker at en funksjon returnerer en verdi, ikke sant?)

Legg merke til at den eneste linje med kode som gjør opp denne funksjonen prosedyren utfører en beregning. Resultatet av regnestykket (nummer til makten til 1/3) er tildelt variabelen CubeRoot. Ikke tilfeldig, er CubeRoot også navnet på funksjonen. Å fortelle funksjon hvilken verdi å returnere, du tilordne verdi til navnet på funksjonen.

Ringe funksjonen fra en Sub prosedyre

Fordi du ikke kan utføre en funksjon direkte, du må kalle det fra en annen prosedyre. Skriv inn følgende enkel prosedyre i samme VBA-modul som inneholder CubeRoot funksjon:
Sub CallerSub () Ans = CubeRoot (125) MsgBox AnsEnd Sub

Når du utfører CallerSub prosedyren, viser Excel en meldingsboks som inneholder Verdien av Ans variabel, som er 5.

Her er hva som skjer: Det CubeRoot funksjonen er utført, og det mottar et argument på 125. Beregningen er utført av funksjonskoden (med verdi sendt som en argument), og funksjonens returnert verdi tilordnet Ans variabel. Den MsgBox funksjonen viser deretter verdien av Ans variable.

Prøv å endre argument som er gått over til CubeRoot funksjon og kjøre CallerSub makro igjen. Det fungerer akkurat som det skal -. Forutsatt at du gir funksjonen en gyldig argument (et positivt tall)

Forresten, kan CallerSub prosedyren forenkles litt. Den Ans variabel er egentlig ikke nødvendig med mindre koden vil bruke denne variabelen senere. Du kan bruke dette enkelt setning for å oppnå samme resultat:
MsgBox CubeRoot (125)
Ringe en funksjon fra et regneark formel

Nå er det på tide å kalle dette VBA Funksjon prosedyren fra et regneark formel. Aktivere et regneark i samme arbeidsbok som holder CubeRoot funksjonsdefinisjonen. Deretter skriver du inn følgende formel i en celle.
= CubeRoot (1 728)

Cellen viser 12, som er faktisk kubikkroten av 1728

Som du kanskje forventer, kan du bruke en celle referanse som argument for CubeRoot funksjonen. For eksempel, hvis celle A1 inneholder en verdi, kan du skrive inn = CubeRoot (A1)
. I dette tilfellet, returnerer funksjonen nummeret ved å beregne kubikkroten av verdien i A1.

Du kan bruke denne funksjonen ubegrenset antall ganger i regnearket. Som Excel innebygde funksjoner, egendefinerte funksjoner vises i Insert Function dialogboksen. Klikk på Sett inn funksjon knappen på verktøylinjen, og velger brukerdefinert kategori. Dialogboksen Sett inn funksjon boksen viser din helt egen funksjon
CubeRoot funksjonen vises i den brukerdefinerte kategorien Sett inn Funksjon dialogen box.If du vil dialogboksen Sett inn funksjon for å vise en beskrivelse av funksjonen, følger du disse trinnene.:

Velg Developer → Kode → Makroer.
Excel viser dialogboksen Makro, men CubeRoot vises ikke i listen. (CubeRoot er en funksjon prosedyre, og denne listen viser bare under prosedyrer.) Ikke slite.

  • Skriv inn ordet CubeRoot i Makronavn-boksen.
  • Klikk Valg-knappen.

    Skriv inn en beskrivelse av funksjonen i Beskrivelse-boksen.

    Klikk OK for å lukke dialogboksen Makro Valg.
    < li> Lukk dialogboksen Makro ved å klikke på Avbryt-knappen.
    Denne beskrivende teksten vises nå i Insert Function dialogboksen.

    Sjekk ut CubeRoot funksjon som brukes i regnearkformler .
    Bruke CubeRoot funksjon i formler.