/ / Funcția Excel VBA și Sub

Funcția Excel VBA și Sub

Funcţie | Sub

Diferența dintre a funcţie și a Sub în Excel VBA este că o funcție poate returna o valoare în timp ce un sub nu poate. Funcțiile și subsolurile devin foarte utile, pe măsură ce dimensiunea programului crește.

Funcţie

Dacă doriți ca Excel VBA să îndeplinească o sarcină care săreturnează un rezultat, puteți utiliza o funcție. Plasați o funcție într-un modul (în Editorul Visual Basic, faceți clic pe Inserare, Modul). De exemplu, funcția cu numele Area.

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

Area = x * y

End Function

Explicaţie: Această funcție are două argumente (de tip Double) și un tip de retur (partea după As, de asemenea, de tip Double). Puteți folosi numele funcției (Area) în codul dvs. pentru a indica rezultatul pe care doriți să îl returnați (aici x * y).

Acum puteți să vă referiți la această funcție (cu alte cuvinte, apelați funcția) din altă parte a codului dvs., folosind pur și simplu numele funcției și oferind o valoare pentru fiecare argument.

Plasați un buton de comandă pe foaia dvs. de lucru și adăugați următoarele linii de cod:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Explicaţie: Funcția returnează o valoare, astfel încât trebuie să "capturați" această valoare în codul dvs. Puteți utiliza o altă variabilă (z) pentru aceasta. Apoi, puteți adăuga o altă valoare la această variabilă (dacă doriți). În cele din urmă, afișați valoarea folosind un MsgBox.

Rezultat când faceți clic pe butonul de comandă de pe foaie:

Rezultatul funcției Excel VBA

Sub

Dacă doriți ca Excel VBA să efectueze unele acțiuni, puteți utiliza un sub. Plasați un sub-într-un modul (în Editorul Visual Basic, faceți clic pe Inserare, Modul). De exemplu, sub-cu numele Area.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Explicaţie: Acest paragraf are două argumente (de tip Double). Nu are un tip de retur! Puteți face referire la acest submeniu (apelați sub) din altă parte a codului dvs., folosind pur și simplu numele sub și dând o valoare pentru fiecare argument.

Plasați un buton de comandă pe foaia de lucru și adăugați următoarea linie de cod:

Area 3, 5

Rezultat când faceți clic pe butonul de comandă de pe foaie:

Excel VBA Sub rezultat

Puteți vedea diferența dintre funcțieși sub? Funcția a returnat valoarea 15. Am adăugat valoarea 2 la acest rezultat și am afișat rezultatul final. Când am sunat sub, nu mai avem control asupra rezultatului (15) deoarece un sub nu poate reveni la o valoare!

De asemenea, citiți: