/ / Excel VBA Funksjon og Sub

Excel VBA Funksjon og Sub

Funksjon | Under

Forskjellen mellom a funksjon og a under i Excel VBA er at en funksjon kan returnere en verdi mens en sub ikke kan. Funksjoner og subs blir veldig nyttige ettersom programstørrelsen øker.

Funksjon

Hvis du vil at Excel VBA skal utføre en oppgave somreturnerer et resultat, du kan bruke en funksjon. Plasser en funksjon i en modul (I Visual Basic Editor klikker du Insert Insert, Module). For eksempel, funksjonen med navn Område.

Function Area(x As Double, y As Double) As Double

Area = x * y

End Function

Forklaring: Denne funksjonen har to argumenter (av typen Dobbel) og en returtype (delen etter As også av typen Dobbel). Du kan bruke navnet på funksjonen (Område) i koden din for å angi hvilket resultat du vil returnere (her x * y).

Du kan nå referere til denne funksjonen (med andre ord, ring funksjonen) fra et annet sted i koden ved å bare bruke navnet på funksjonen og gi en verdi for hvert argument.

Legg en kommandoknapp på regnearket og legg til følgende kodelinjer:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Forklaring: Funksjonen returnerer en verdi, så du må "fange" denne verdien i koden din. Du kan bruke en annen variabel (z) for dette. Deretter kan du legge til en annen verdi for denne variabelen (hvis du vil). Endelig vis verdien ved hjelp av en MsgBox.

Resultat når du klikker på kommandoknappen på arket:

Excel VBA Funksjon Resultat

Under

Hvis du vil at Excel VBA skal utføre noen handlinger, kan du bruke en sub. Plasser en del i en modul (I Visual Basic Editor klikker du Sett inn, Modul). For eksempel, undernavnet Område.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Forklaring: Denne underen har to argumenter (av typen Dobbel). Det har ingen returtype! Du kan referere til denne suben (ring under) fra et annet sted i koden din ved å bare bruke navnet på suben og gi en verdi for hvert argument.

Legg en kommandoknapp på regnearket og legg til følgende kodelinje:

Area 3, 5

Resultat når du klikker på kommandoknappen på arket:

Excel VBA delresultat

Kan du se forskjellen mellom funksjonenog sub? Funksjonen returnerte verdien 15. Vi la verdien 2 til dette resultatet og viste sluttresultatet. Da vi ringte underen hadde vi ikke mer kontroll over resultatet (15) fordi en del ikke kan returnere en verdi!

Les også: