/ / Excel VBA -toiminto ja -osa

Excel VBA -toiminto ja sub

Toimia | Sub

Ero a toimia ja a sub sisään Excel VBA on, että funktio voi palauttaa arvon, kun osa ei voi. Toiminnot ja subset tulevat erittäin hyödyllisiksi ohjelmien koon kasvaessa.

Toimia

Jos haluat, että Excel VBA suorittaa tehtävänpalauttaa tuloksen, voit käyttää funktiota. Aseta funktio moduuliin (Napsauta Visual Basic Editorissa Insert, Module). Esimerkiksi toiminto, jonka nimi on Alue.

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

Area = x * y

End Function

Selitys: Tässä toiminnossa on kaksi argumenttia (tyyppiä Double) ja paluutapa (osa myös nimellä As also of type Double). Voit käyttää koodin funktion (Area) nimeä ilmoittamaan tuloksen, jonka haluat palauttaa (tässä x * y).

Voit nyt viitata tähän funktioon (toisin sanoen soittaa toimintoon) muualta koodissasi yksinkertaisesti käyttämällä funktion nimeä ja antamalla arvoa jokaiselle argumentille.

Aseta komentopainike laskentatauluun ja lisää seuraavat koodiluokat:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Selitys: Toiminto palauttaa arvon, joten sinun on "kiinni" tämä arvo koodissasi. Voit käyttää tätä toista muuttujaa (z). Seuraavaksi voit lisätä uuden arvon tähän muuttujaan (jos haluat). Lopuksi näytä arvo MsgBoxin avulla.

Tulos, kun napsautat arkin komentopainiketta:

Excel VBA -toiminnon tulos

Sub

Jos haluat, että Excel VBA suorittaa joitakin toimia, voit käyttää alia. Aseta osa moduuliin (Napsauta Visual Basic Editorissa Insert, Module). Esimerkiksi osa, jonka nimi on Alue.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Selitys: Tässä osassa on kaksi argumenttia (tyyppiä Double). Ei ole paluuta! Voit viitata tähän osaan (soita alasivusto) muualta koodissasi yksinkertaisesti käyttämällä alin nimeä ja antamalla arvoa jokaiselle argumentille.

Aseta komentopainike laskentatauluun ja lisää seuraava koodirivi:

Area 3, 5

Tulos, kun napsautat arkin komentopainiketta:

Excel VBA alijulkaisu

Näetkö funktion välisen eronja osa? Toiminto palautti arvon 15. Lisäsimme arvon 2 tähän tulokseen ja näytimme lopullisen tuloksen. Kun me kutsuttiin sub, meillä ei ollut enää kontrollia tulosta (15), koska osa ei voi palauttaa arvoa!

Lue myös: