/ / Екцел ВБА функција и суб

Екцел ВБА функција и суб

Функција | Суб

Разлика између а функција и а суб ин Екцел ВБА је да функција може вратити вриједност док суб не може. Функције и подстанице постају врло корисне док се програмска величина повећава.

Функција

Ако желите Екцел ВБА да изврши задатак који јевраћа резултат, можете користити функцију. Поставите функцију у модул (у Висуал Басиц Едитор, кликните Инсерт, Модуле). На примјер, функција са називом Област.

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

Area = x * y

End Function

Објашњење: Ова функција има два аргумента (типа Доубле) и повратни тип (део након Ас и типа Доубле). Можете користити име функције (подручје) у вашем коду да бисте назначили који резултат желите вратити (овдје к * и).

Сада можете да се позовете на ову функцију (другим речима позовите функцију) од нечега другог у вашем коду једноставним кориштењем имена функције и давањем вриједности за сваки аргумент.

Поставите командно дугме на свој радни лист и додајте следеће линије кода:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Објашњење: Функција враћа вриједност тако да морате "ухватити" ову вриједност у вашем коду. Можете користити још једну варијаблу (з) за ово. Затим можете додати још једну вриједност овој варијабли (ако желите). На крају, прикажите вредност користећи МсгБок.

Резултат када кликнете на командно дугме на листу:

Екцел ВБА функција резултата

Суб

Ако желите да Екцел ВБА изврши неке радње, можете користити под. Поставите суб у модул (у Висуал Басиц Едитор, кликните Инсерт, Модуле). На пример, суб са називом Област.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Објашњење: Овај суб има два аргумента (типа Доубле). Она нема повратни тип! Можете се позвати на овај под (позвати суб) од нечега другог у свој код, једноставно користећи име суба и дајући вриједност за сваки аргумент.

Поставите командно дугме на свој радни лист и додајте следећу линију кода:

Area 3, 5

Резултат када кликнете на командно дугме на листу:

Екцел ВБА Суб Ресулт

Можете ли видети разлику између функције?и под? Функција је вратила вредност 15. Додали смо вредност 2 овом резултату и приказали коначни резултат. Када смо назвали суб, нисмо имали више контроле над резултатом (15), јер под-не може вратити вриједност!

Такође прочитајте: