Функция и подпрограмма Excel VBA - макросы Easy Excel

Содержание

Функция | Sub

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

Функция

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

Функциональная область (x как двойная, y как двойная) как двойная
Площадь = x * y
Конечная функция

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

Теперь вы можете ссылаться на эту функцию (другими словами, вызывать функцию) из другого места в вашем коде, просто используя имя функции и задавая значение для каждого аргумента.

Поместите командную кнопку на свой рабочий лист и добавьте следующие строки кода:

Dim z как двойной
z = Площадь (3, 5) + 2
MsgBox z

Объяснение: Функция возвращает значение, поэтому вы должны «поймать» это значение в своем коде. Вы можете использовать для этого другую переменную (z). Затем вы можете добавить к этой переменной еще одно значение (если хотите). Наконец, отобразите значение с помощью MsgBox.

Результат при нажатии кнопки команды на листе:

Sub

Если вы хотите, чтобы Excel VBA выполнял некоторые действия, вы можете использовать подпрограмму. Поместите подпрограмму в модуль (в редакторе Visual Basic нажмите «Вставить», «Модуль»). Например, подписка с названием Area.

Дополнительная область (x как двойное, y как двойное)
MsgBox x * y
Конец подписки

Объяснение: У этой подпрограммы есть два аргумента (типа Double). У него нет возвращаемого типа! Вы можете ссылаться на эту подпрограмму (вызвать подпрограмму) откуда-то еще в своем коде, просто используя имя подпрограммы и задав значение для каждого аргумента.

Поместите командную кнопку на свой рабочий лист и добавьте следующую строку кода:

Площадь 3, 5

Результат при нажатии кнопки команды на листе:

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

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave