/ / Excel VBA Funktion og Sub

Excel VBA Funktion og Sub

Fungere | Sub

Forskellen mellem a fungere og a sub i Excel VBA er at en funktion kan returnere en værdi, mens en del ikke kan. Funktioner og subs bliver meget nyttige, da programstørrelsen stiger.

Fungere

Hvis du vil have Excel VBA til at udføre en opgave, somreturnerer et resultat, du kan bruge en funktion. Placer en funktion i et modul (Klik på Indsæt, Modul i Visual Basic Editor). F.eks. Funktionen med navn Område.

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

Area = x * y

End Function

Forklaring: Denne funktion har to argumenter (type dobbelt) og en returtype (delen efter As også for typen Double). Du kan bruge navnet på funktionen (Område) i din kode for at angive hvilket resultat du vil returnere (her x * y).

Du kan nu henvise til denne funktion (med andre ord kalde funktionen) fra et andet sted i din kode ved blot at bruge navnet på funktionen og give en værdi for hvert argument.

Placer en kommandoknap på dit regneark og tilføj følgende kodelinjer:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Forklaring: Funktionen returnerer en værdi, så du skal "fange" denne værdi i din kode. Du kan bruge en anden variabel (z) til dette. Dernæst kan du tilføje en anden værdi til denne variabel (hvis du vil). Endelig skal du vise værdien ved hjælp af en MsgBox.

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

Excel VBA Funktionsresultat

Sub

Hvis du vil have Excel VBA til at udføre nogle handlinger, kan du bruge en sub. Placer en del i et modul (Klik på Insert, Modul i Visual Basic Editor). F.eks. Undernavnet Område.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Forklaring: Denne under har to argumenter (af typen Double). Det har ikke en returtype! Du kan henvise til denne under (kald under) fra et andet sted i din kode ved blot at bruge subnavnet og give en værdi for hvert argument.

Placer en kommandoknap på dit regneark og tilføj følgende kodelinje:

Area 3, 5

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

Excel VBA delresultat

Kan du se forskellen mellem funktionenog sub? Funktionen returnerede værdien 15. Vi tilføjede værdien 2 til dette resultat og viste det endelige resultat. Da vi kaldte suben, havde vi ikke mere kontrol over resultatet (15), fordi en del ikke kan returnere en værdi!

Læs også: