/ / Excel VBA функция и Sub

Функция Excel VBA и под

функция | подводница

Разликата между a функция и a подводница в Excel VBA е, че функция може да върне стойност, докато sub не може. Функциите и поддръжките стават много полезни, тъй като размерът на програмата се увеличава.

функция

Ако искате Excel VBA да изпълни задачата, коятовръща резултат, можете да използвате функция. Поставете функция в модул (В редактора на Visual Basic щракнете върху Вмъкване, Модул). Например, функцията с наименование Площ.

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

Area = x * y

End Function

Обяснение: Тази функция има два аргумента (от типа Double) и един тип връщане (частта след As също от тип Double). Можете да използвате името на функцията (област) във вашия код, за да посочите резултата, който искате да върнете (тук x * y).

Вече можете да се позовете на тази функция (с други думи, да се обадите на функцията) от някъде другаде във вашия код, като просто използвате името на функцията и давате стойност за всеки аргумент.

Поставете командния бутон на работния лист и добавете следните кодови редове:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Обяснение: Функцията връща стойност, така че трябва да "улови" тази стойност във вашия код. Можете да използвате друга променлива (z) за това. След това можете да добавите друга стойност към тази променлива (ако искате). Накрая покажете стойността с помощта на MsgBox.

Резултат, когато кликнете върху командния бутон на листа:

Резултат на функцията Excel VBA

подводница

Ако искате Excel VBA да изпълнява някои действия, можете да използвате под. Поставете суба в модул (В редактора на Visual Basic кликнете върху Вмъкване, Модул). Например, подметката с името Area.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Обяснение: Този подводник има два аргумента (тип Double). Тя няма връщане на типа! Можете да се обърнете към този под (извикайте под) от някъде другаде в кода си, като просто използвате името на подменюто и давате стойност за всеки аргумент.

Поставете командния бутон на работния лист и добавете следния ред:

Area 3, 5

Резултат, когато кликнете върху командния бутон на листа:

Excel Sub VBA резултат

Виждате ли разликата между функциятаи под? Функцията връща стойността 15. Добавихме стойност 2 към този резултат и показахме крайния резултат. Когато се обадихме на sub, нямахме повече контрол над резултата (15), защото субектът не може да върне стойност!

Също така се чете: