Как создать функцию факториала в vba (с примером)


Факториал — это произведение всех натуральных чисел, меньших или равных данному положительному целому числу.

Например, факториал 5 (пишется 5!) рассчитывается как:

  • 5! = 5 * 4 * 3 * 2 * 1 = 120

Вы можете использовать следующий синтаксис для создания функции факториала в VBA:

 Function FindFactorial(N As Integer) As Double

 Dim i As Integer, result As Long
 
 result = 1

 For i = 1 To N
     result = result * i
 Next

 FindFactorial = result

End Function

После создания этой функции вы можете ввести что-то вроде =FindFactori(A2) в ячейку Excel, чтобы найти факториал целого числа в ячейке A2 .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример. Создание функции факториала в VBA

Предположим, у нас есть следующий список чисел в Excel, и мы хотим вычислить факториал каждого числа:

Для этого мы можем определить следующую функцию в VBA:

 Function FindFactorial(N As Integer) As Double

 Dim i As Integer, result As Long
 
 result = 1

 For i = 1 To N
     result = result * i
 Next

 FindFactorial = result

End Function

После того, как мы создали эту функцию, мы можем ввести следующую формулу в ячейку B2 , чтобы вычислить факториал значения в ячейке A2 :

 =FindFactorial( A2 )

Затем мы можем щелкнуть и перетащить эту формулу в каждую оставшуюся ячейку в столбце B:

функция факториала в VBA

Обратите внимание, что в столбце B теперь отображается факториал каждого целого числа в столбце A.

Например:

  • 1! = 1
  • 2! = 2 * 1 = 2
  • 3! = 3 * 2 * 1 = 6
  • 4! = 4 * 3 * 2 * 1 = 24

И так далее.

Примечание . Чтобы вычислить факториал в Excel без использования VBA, вы можете использовать функцию ФАКТ .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: Как добавить значения в диапазон
VBA: Как рассчитать среднее значение диапазона
VBA: как подсчитать количество строк в диапазоне

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *