/ / Excel VBA Funktion och Sub

Excel VBA Funktion och Sub

Fungera | Sub

Skillnaden mellan a fungera och a sub i Excel VBA är att en funktion kan returnera ett värde medan en del inte kan. Funktioner och subs blir mycket användbara, eftersom programstorleken ökar.

Fungera

Om du vill att Excel VBA ska utföra en uppgift somreturnerar ett resultat, du kan använda en funktion. Placera en funktion i en modul (Klicka på Infoga, modul i Visual Basic Editor). Till exempel, funktionen med namn Område.

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

Area = x * y

End Function

Förklaring: Den här funktionen har två argument (av typ Dubbel) och en returtyp (delen efter As även av typen Double). Du kan använda namnet på funktionen (Område) i din kod för att ange vilket resultat du vill återvända (här x * y).

Du kan nu hänvisa till denna funktion (med andra ord kalla funktionen) från någon annanstans i din kod genom att helt enkelt använda namnet på funktionen och ge ett värde för varje argument.

Placera en kommandoknapp på ditt arbetsblad och lägg till följande kodlinjer:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Förklaring: Funktionen returnerar ett värde så att du måste "fånga" det här värdet i din kod. Du kan använda en annan variabel (z) för detta. Därefter kan du lägga till ett annat värde för denna variabel (om du vill). Slutligen visa värdet med en MsgBox.

Resultat när du klickar på kommandoknappen på arket:

Excel VBA-funktionsresultat

Sub

Om du vill att Excel VBA ska utföra några åtgärder kan du använda en sub. Placera en del i en modul (Klicka på Infoga, modul i Visual Basic Editor). Till exempel sub med namn Area.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Förklaring: Denna del har två argument (typ Dubbel). Det har ingen returtyp! Du kan hänvisa till denna del (ring sub) från någon annanstans i din kod genom att helt enkelt använda namnet på suben och ge ett värde för varje argument.

Placera en kommandoknapp på ditt arbetsblad och lägg till följande kodrad:

Area 3, 5

Resultat när du klickar på kommandoknappen på arket:

Excel VBA Delresultat

Kan du se skillnaden mellan funktionenoch sub? Funktionen returnerade värdet 15. Vi lade till värdet 2 till detta resultat och visade slutresultatet. När vi ringde suben hade vi inte längre kontroll över resultatet (15) eftersom en del inte kan returnera ett värde!

Läs också: