Ниже мы рассмотрим программу в Excel VBA, который создает определенные пользователем функции. Excel имеет большой набор функций. В большинстве случаев эти функции достаточно, чтобы получить работу. Если нет, то вы можете создать свою собственную функцию под названием User Defined Function или пользовательские функции Excel. Вы можете получить доступ к определенному пользователю функции, как и любой другой функция Excel.

Мы хотим создать функцию, называемую SUMEVENNUMBERS, которая находит сумму четных чисел случайно выбранного диапазона.

Ситуация:

User Defined Function in Excel VBA

Пользовательские функции должны быть помещены в модуль.

  1. Откройте редактор Visual Basic и выберите Вставка, модуль.

  2. Добавьте следующую строку кода:

Function SUMEVENNUMBERS(rng As Range)

Название нашей функции является SUMEVENNUMBERS. Часть в скобках означает, что мы даем Excel VBA диапазон в качестве входных данных. Мы называем наш диапазон ГСЧ, но вы можете использовать любое имя.

  1. Далее, мы объявляем объект Range и назовите его клеткой.

Dim cell As Range
  1. Мы хотим, чтобы проверить каждую ячейку в случайно выбранном диапазоне (этот диапазон может быть любого размера). В Excel VBA, вы можете использовать для каждого следующего цикла для этого. Добавьте следующие строки кода:

For Each cell In rng

Next cell

Примечание: ячейка случайным образом выбирается здесь, вы можете использовать любое имя.

  1. Далее, мы проверяем для каждого значения в этом диапазоне, является ли оно четным или нет. Мы используем оператор Mod для этого. Оператор Mod дает остаток от деления. Таким образом, 7 по модулю 2 даст 1. 7 делится на 2 (3 раза) с получением в остатке 1. С учетом вышесказанного, можно легко проверить, является ли число четным или нет. Только если остаток от числа, разделенного на 2 равен 0, то число четное. 8 по модулю 2 дает 0, 8 делится на 2 ровно в 4 раза, и, следовательно, даже 8. Добавьте следующее заявление Если на каждый следующий цикл.

If cell.Value Mod 2 = 0 Then

End If
  1. Только если это утверждение верно, мы добавляем значение SUMEVENNUMBERS.

Добавьте следующую строку кода в операторе If.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value
  1. Не забудьте закончить эту функцию (вне цикла).

End Function
  1. Теперь вы можете использовать эту функцию, так же как и любую другую функцию Excel, чтобы найти сумму четных чисел случайно выбранный диапазон.

Результат:

User Defined Function Result

Отлично сработано! Вот как легко определяемые пользователем функции в Excel VBA есть.

Примечание: эта функция доступна только в этой книге.