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

Функция

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

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

Area = x  y

End Function

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

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

Поместите ссылка: VBA Create-A-макро-# командной кнопки [Кнопка управления] / на листе и добавьте следующие строки кода:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

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

Результат при нажатии на кнопку управления на листе:

Excel VBA Function Result

Sub

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

Например, к югу с именем зоны.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

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

Поместите ссылка: VBA Create-A-макро-# командной кнопки [Кнопка управления] / на листе и добавьте следующую строку кода:

Area 3, 5

Результат при нажатии на кнопку управления на листе:

Excel VBA Sub Result

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