/ / Excel VBA Function і Sub

Функція Excel VBA і Sub

Функція | Суб

Різниця між a функція і a суб в Excel VBA це те, що функція може повернути значення, а суб-не може. Функції та підстави стають дуже корисними, оскільки збільшується розмір програми.

Функція

Якщо ви хочете, щоб Excel VBA виконувала завдання, якеповертає результат, ви можете використовувати функцію. Помістіть функцію в модуль (у редакторі Visual Basic натисніть кнопку Вставити, модуль). Наприклад, функція з назвою Area.

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 VBA

Ви можете бачити різницю між функцієюі підряд? Функція повернула значення 15. Ми додали значення до цього результату і показали кінцевий результат. Коли ми називали цей підрозділ, ми не мали більше контролю над результатом (15), тому що підрахунок не може повернути значення!

Також читайте: