Slik utfører du VBA-funksjonsprosedyrer i Excel 2016

I VBA-programmering returnerer en funksjon en verdi. Du kan utføre funksjonsprosedyrer og kalle funksjonen i Excel 2016. Funksjoner, i motsetning til underprosedyrer, kan utføres på bare to måter:

  • Ved å kalle opp funksjonen fra en annen underprosedyre eller funksjonsprosedyre

  • Ved å bruke funksjonen i en regnearkformel

Prøv denne enkle funksjonen. Skriv det inn i en VBA-modul:

Funksjon CubeRoot(nummer)
  CubeRoot = tall ^ (1 / 3)
Avslutt funksjon

Denne funksjonen er ganske kjip; den beregner bare terningroten av tallet som ble sendt til den som argument. Det gir imidlertid et utgangspunkt for å forstå funksjoner. Den illustrerer også et viktig konsept om funksjoner: hvordan returnere verdien. (Du husker at en funksjon returnerer en verdi, ikke sant?)

Legg merke til at den enkle kodelinjen som utgjør denne funksjonsprosedyren, utfører en beregning. Resultatet av matematikken (tall i potensen 1/3) tilordnes variabelen CubeRoot. Ikke tilfeldig er CubeRoot også navnet på funksjonen. For å fortelle funksjonen hvilken verdi som skal returneres, tildeler du denne verdien til navnet på funksjonen.

Kalle opp funksjonen fra en underprosedyre

Fordi du ikke kan utføre en funksjon direkte, må du kalle den fra en annen prosedyre. Skriv inn følgende enkle prosedyre i samme VBA-modul som inneholder CubeRoot-funksjonen:

Sub CallerSub()
  Ans = CubeRoot(125)
  MsgBox Ans
End Sub

Når du utfører CallerSub-prosedyren, viser Excel en meldingsboks som inneholder verdien til Ans-variabelen, som er 5.

Her er hva som skjer: CubeRoot-funksjonen utføres, og den mottar et argument på 125. Beregningen utføres av funksjonens kode (ved å bruke verdien som sendes som argument), og funksjonens returnerte verdi tilordnes Ans-variabelen. MsgBox-funksjonen viser deretter verdien til 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).

CallerSub-prosedyren kan forresten forenkles litt. Ans-variabelen er egentlig ikke nødvendig med mindre koden din vil bruke den variabelen senere. Du kan bruke denne enkle setningen for å oppnå samme resultat:

  MsgBox CubeRoot(125)

Kalle opp en funksjon fra en regnearkformel

Nå er det på tide å kalle denne VBA-funksjonsprosedyren fra en regnearkformel. Aktiver et regneark i den samme arbeidsboken som inneholder CubeRoot-funksjonsdefinisjonen. Skriv deretter inn følgende formel i en hvilken som helst celle:

=CubeRoot(1728)

Cellen viser 12, som faktisk er kuberoten av 1728.

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

Du kan bruke denne funksjonen et hvilket som helst antall ganger i regnearket. I likhet med Excels innebygde funksjoner, vises dine egendefinerte funksjoner i dialogboksen Sett inn funksjon. Klikk på verktøylinjeknappen Sett inn funksjon, og velg kategorien Brukerdefinert. Dialogboksen Sett inn funksjon viser din egen funksjon.

Slik utfører du VBA-funksjonsprosedyrer i Excel 2016

CubeRoot-funksjonen vises i kategorien Brukerdefinert i dialogboksen Insert Function.

Hvis du vil at dialogboksen Sett inn funksjon skal vise en beskrivelse av funksjonen, følger du disse trinnene:

Velg Utvikler → Kode → Makroer.

Excel viser makrodialogboksen, men CubeRoot vises ikke i listen. (CubeRoot er en funksjonsprosedyre, og denne listen viser bare underprosedyrer.) Ikke bekymre deg.

Skriv inn ordet CubeRoot i Makronavn-boksen.

Klikk på Alternativer-knappen.

Skriv inn en beskrivelse av funksjonen i boksen Beskrivelse.

Klikk OK for å lukke dialogboksen Makroalternativer.

Lukk makrodialogboksen ved å klikke på Avbryt-knappen.

Denne beskrivende teksten vises nå i dialogboksen Sett inn funksjon.

Sjekk ut CubeRoot-funksjonen som brukes i regnearkformler.

Slik utfører du VBA-funksjonsprosedyrer i Excel 2016

Bruke CubeRoot-funksjonen i formler.


Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows Microsoft Word åpner filer i skrivebeskyttet modus, noe som gjør det umulig å redigere dem? Ikke bekymre deg, metodene er nedenfor

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Slik fikser du feil ved utskrift av feil Microsoft Word-dokumenter Feil ved utskrift av Word-dokumenter med endrede fonter, rotete avsnitt, manglende tekst eller tapt innhold er ganske vanlig. Men ikke gjør det

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Hvis du har brukt pennen eller merkepennen til å tegne på PowerPoint-lysbildene dine under en presentasjon, kan du lagre tegningene til neste presentasjon eller slette dem, slik at du neste gang du viser dem starter med rene PowerPoint-lysbilder. Følg disse instruksjonene for å slette penn- og merkepenntegninger: Slette linje én på […]

Style Library-innhold i SharePoint 2010

Style Library-innhold i SharePoint 2010

Stilbiblioteket inneholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og bilder som brukes av forhåndsdefinerte mastersider, sideoppsett og kontroller i SharePoint 2010. For å finne CSS-filer i stilbiblioteket til et publiseringsnettsted: Velg Site Actions→ View Alt innhold på nettstedet. Innholdet på nettstedet vises. Style-biblioteket ligger i […]

Formater tall i tusenvis og millioner i Excel-rapporter

Formater tall i tusenvis og millioner i Excel-rapporter

Ikke overveld publikum med gigantiske tall. I Microsoft Excel kan du forbedre lesbarheten til dashbordene og rapportene dine ved å formatere tallene dine slik at de vises i tusenvis eller millioner.

Hvordan dele og følge SharePoint-nettsteder

Hvordan dele og følge SharePoint-nettsteder

Lær hvordan du bruker SharePoints sosiale nettverksverktøy som lar enkeltpersoner og grupper kommunisere, samarbeide, dele og koble til.

Hvordan konvertere datoer til julianske formater i Excel

Hvordan konvertere datoer til julianske formater i Excel

Julianske datoer brukes ofte i produksjonsmiljøer som et tidsstempel og hurtigreferanse for et batchnummer. Denne typen datokoding lar forhandlere, forbrukere og serviceagenter identifisere når et produkt ble laget, og dermed alderen på produktet. Julianske datoer brukes også i programmering, militæret og astronomi. Forskjellig […]

Hvordan lage en Access Web App

Hvordan lage en Access Web App

Du kan lage en nettapp i Access 2016. Så hva er en nettapp egentlig? Vel, nettet betyr at det er online, og appen er bare en forkortelse for "applikasjon". En Custom Web App er en online databaseapplikasjon som du får tilgang til fra skyen ved hjelp av en nettleser. Du bygger og vedlikeholder nettappen i skrivebordsversjonen […]

Hurtigstartlinje i SharePoint 2010

Hurtigstartlinje i SharePoint 2010

De fleste sidene i SharePoint 2010 viser en liste over navigasjonskoblinger på hurtigstartlinjen langs venstre side av siden. Hurtigstartlinjen viser koblinger til innhold på nettstedet som lister, biblioteker, nettsteder og publiseringssider. Hurtigstartlinjen inneholder to svært viktige lenker: Linken for alt nettstedinnhold: […]

Hva betyr løserfeilmeldingene i Excel?

Hva betyr løserfeilmeldingene i Excel?

For enkle problemer finner Solver i Excel vanligvis raskt de optimale Solver-variabelverdiene for objektivfunksjonen. Men i noen tilfeller har Solver problemer med å finne Solver-variabelverdiene som optimerer objektivfunksjonen. I disse tilfellene viser Solver vanligvis en melding eller en feilmelding som beskriver eller diskuterer problemet som […]