/ / "Excel VBA" funkcija ir sub

Excel VBA funkcija ir sub

Funkcija | Sub

Skirtumas tarp a funkcija ir a sub in Excel VBA yra tai, kad funkcija gali grąžinti vertę, kai sub negali. Funkcijos ir papildymai tampa labai naudingi, nes programos dydis didėja.

Funkcija

Jei norite, kad "Excel VBA" atliktų užduotisgrąžina rezultatą, galite naudoti funkciją. Įdėkite funkciją į modulį (redaktoriuje Visual Basic, spustelėkite Įterpti, modulis). Pavyzdžiui, funkcija su pavadinimu "Area".

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

Area = x * y

End Function

Paaiškinimas: Ši funkcija turi du argumentus (tipo "Dvivietis") ir grąžinimo tipą (dalį po "As" taip pat tipo "dvigubas"). Galite naudoti savo kodo funkciją (sritis) pavadinimą, norėdami parodyti, kurį rezultatą norite grąžinti (čia x * y).

Dabar galite kreiptis į šią funkciją (kitaip tariant, skambinti funkciją) iš kažkur kito jūsų kodo tiesiog naudodamiesi funkcijos pavadinimu ir nurodydami kiekvieno argumento vertę.

Įdėkite komandų mygtuką į savo darbalapį ir pridėkite šias kodo eilutes:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Paaiškinimas: Funkcija grąžina reikšmę, todėl jūs turite sugauti šią vertę savo kode. Tam galite naudoti kitą kintamąjį (z). Tada galite pridėti kitą reikšmę kintamam (jei norite). Galiausiai parodykite vertę naudodami MsgBox.

Rezultatas spustelėjus komandą mygtuką ant lapo:

Excel VBA funkcijos rezultatas

Sub

Jei norite, kad "Excel VBA" atliktų tam tikrus veiksmus, galite naudoti sub. Įdėkite modulį į modulį ("Visual Basic" redaktoriuje spustelėkite "Įterpti", "Module"). Pavyzdžiui, sub pavadinimu "Area".

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Paaiškinimas: Šį pakopą turi du argumentai (tipo "dvigubas"). Jame nėra grąžinimo tipo! Galite nurodyti šį sub (skambinti sub) iš kur nors kito savo kodo tiesiog naudodami sub pavadinimą ir pateikdami kiekvieno argumento vertę.

Įdėkite komandų mygtuką į savo darbalapį ir pridėkite šią kodo eilutę:

Area 3, 5

Rezultatas spustelėjus komandą mygtuką ant lapo:

Excel VBA sub rezultatas

Ar galite pamatyti skirtumą tarp funkcijosir sub? Funkcija grąžino reikšmę 15. Mes pridėjome šio rezultato vertę 2 ir parodėme galutinį rezultatą. Kai mes pavadinome sub, mes neturėjome daugiau kontroliuoti rezultato (15), nes sub negali grąžinti vertės!

Taip pat perskaitykite: