Daugiau
Kaip grąžinti rezultatą iš VBA funkcijos
Kaip grąžinti funkcijos rezultatą?
Pavyzdžiui:
Public Function test() As Integer
return 1
End Function
Gaunama kompiliavimo klaida.
Kaip padaryti, kad ši funkcija grąžintų sveikąjį skaičių?
254
3
Jei grąžinami ne objektų tipai, reikšmę reikia priskirti funkcijos pavadinimui, pvz., taip:
Naudojimo pavyzdys:
Jei funkcija grąžina Objekto tipą, turite naudoti raktinį žodį
Set
, pvz:Naudojimo pavyzdys:
Atkreipkite dėmesį, kad funkcijos pavadinimui priskyrus grįžtamąją vertę, funkcijos vykdymas nenutraukiamas. Jei norite užbaigti funkciją, turite aiškiai nurodyti
Exit Function
. Pavyzdžiui:Dokumentacija: http://msdn.microsoft.com/en-us/library/office/gg264233%28v=office.14%29.aspx
VBA funkcijos patį funkcijos pavadinimą laiko tam tikru kintamuoju. Taigi, užuot naudoję "
return
" teiginį, tiesiog pasakykite:Tačiau atkreipkite dėmesį, kad tai nepadeda ištrūkti iš funkcijos. Bet koks kodas po šio teiginio taip pat bus vykdomas. Taigi, galite turėti daugybę priskyrimo teiginių, kurie
test
priskiria skirtingas reikšmes, ir bet kokia reikšmė bus grąžinama, kai pasieksite funkcijos pabaigą.Vien tik grąžinimo reikšmės nustatymas į funkcijos pavadinimą vis tiek nėra tiksliai tas pats, kas Java (ar kitas)
return
teiginys, nes Java sistemojereturn
išveda funkciją, pvz., taip:VB kalba tikslus atitikmuo užtrunka dvi eilutes, jeigu funkcijos pabaigoje nenustatote grąžinimo reikšmės. Taigi, VB tikslioji pasekmė atrodytų taip:
Kadangi taip yra, taip pat malonu žinoti, kad grąžinimo kintamąjį galite naudoti kaip bet kurį kitą metodo kintamąjį. Pavyzdžiui, taip: