Excel VBA-funktionsvejledning: Retur, opkald, eksempler

Hvad er en funktion?

En funktion er et stykke kode, der udfรธrer en bestemt opgave og returnerer et resultat. Funktioner bruges mest til at udfรธre gentagne opgaver sรฅsom formatering af data til output, udfรธrelse af beregninger osv.

Antag, at du er udvikletping et program, der beregner renten pรฅ et lรฅn. Du kan oprette en funktion, der accepterer lรฅnebelรธbet og tilbagebetalingsperioden. Funktionen kan derefter bruge lรฅnebelรธbet og tilbagebetalingsperioden til at beregne renten og returnere vรฆrdien.

Hvorfor bruge funktioner

Fordelene ved at bruge funktioner er de samme som dem i ovenstรฅende afsnit om hvorfor man bruger subrutiner.

Regler for navngivning af funktioner

Reglerne for navngivning fungerer pรฅ samme mรฅde som dem i ovenstรฅende afsnit om regler for navngivning af underrutiner.

VBA-syntaks til at deklarere funktion

Private Function myFunction (ByVal arg1 As Integer, ByVal arg2 As Integer)
    myFunction = arg1 + arg2
End Function

HER i syntaksen,

Code Handling
  • "Privat funktion myFunction(...)"
  • Her bruges nรธgleordet "Function" til at erklรฆre en funktion ved navn "myFunction" og starte funktionens brรธdtekst.
  • Nรธgleordet 'Privat' bruges til at specificere funktionens omfang
  • "ByVal arg1 som heltal, ByVal arg2 som heltal"
  • Den erklรฆrer to parametre af heltalsdatatypen ved navn 'arg1' og 'arg2.'
  • myFunction = arg1 + arg2
  • evaluerer udtrykket arg1 + arg2 og tildeler resultatet til navnet pรฅ funktionen.
  • "Afslut funktion"
  • "End Sub" bruges til at afslutte funktionens brรธdtekst

Funktion demonstreret med eksempel:

Funktioner ligner meget subrutinen. Den stรธrste forskel mellem en underrutine og en funktion er, at funktionen returnerer en vรฆrdi, nรฅr den kaldes. Mens en underrutine ikke returnerer en vรฆrdi, nรฅr den kaldes. Lad os sige, at du vil tilfรธje to tal. Du kan oprette en funktion, der accepterer to tal og returnerer summen af โ€‹โ€‹tallene.

  1. Opret brugergrรฆnsefladen
  2. Tilfรธj funktionen
  3. Skriv kode til kommandoknappen
  4. Test koden

Trin 1) Brugergrรฆnseflade

Tilfรธj en kommandoknap til regnearket som vist nedenfor

VBA-funktioner og underrutine

Indstil fรธlgende egenskaber for CommanButton1 til fรธlgende.

S / N kontrol Ejendom Vรฆrdi
1 KommandoKnap1 Navn btnTilfรธjNumbers
2 Caption Tilfรธj Numbers Funktion


Din grรฆnseflade skulle nu se ud som fรธlger

VBA-funktioner og underrutine

Trin 2) Funktionskode.

  1. Tryk pรฅ Alt + F11 for at รฅbne kodevinduet
  2. Tilfรธj fรธlgende kode
Private Function addNumbers(ByVal firstNumber As Integer, ByVal secondNumber As Integer)
    addNumbers = firstNumber + secondNumber
End Function

HER i koden,

Code Handling
  • โ€œPrivat funktion tilfรธjeNumbers(...) "
  • Det erklรฆrer en privat funktion "tilfรธjNumbersโ€, der accepterer to heltalsparametre.
  • "ByVal firstNumber As Integer, ByVal secondNumber As Integer"
  • Den erklรฆrer to parametervariable firstNumber og secondNumber
  • "tilfรธjeNumbers = firstNumber + secondNumber"
  • Den tilfรธjer vรฆrdierne firstNumber og secondNumber og tildeler summen, der skal tilfรธjesNumbers.

Trin 3) Skriv Code der kalder funktionen

  1. Hรธjreklik pรฅ btnAddNumbers_Klik pรฅ kommandoknappen
  2. Vรฆlg Vis Code
  3. Tilfรธj fรธlgende kode
Private Sub btnAddNumbersFunction_Click()
    MsgBox addNumbers(2, 3)
End Sub

HER i koden,

Code Handling
"MsgBox tilfรธjeNumbers(en)"
  • Det kalder funktionen addNumbers og passerer ind 2 og 3 som parametre. Funktionen returnerer summen af โ€‹โ€‹de to tal fem (5)

Trin 4) Kรธr programmet, du vil fรฅ fรธlgende resultater

VBA-funktioner og underrutine

Download Excel, der indeholder ovenstรฅende kode

Download ovenstรฅende Excel-fil Code

Resumรฉ

  • En funktion er et stykke kode, der udfรธrer en bestemt opgave. En funktion returnerer en vรฆrdi efter udfรธrelse.
  • Bรฅde underrutiner og funktioner tilbyder kodegenanvendelighed
  • Bรฅde underrutiner og funktioner hjรฆlper med at nedbryde store bidder af kode til smรฅ hรฅndterbare kode.

Opsummer dette indlรฆg med: