#arrays #excel #vba #sequence
#массивы #excel #vba #последовательность
Вопрос:
Давайте рассмотрим следующий код, который создает массив следующим образом :
Function my_fun(a As Double, b As Double, n)
Dim arr() As Variant
ReDim arr(n - 1)
Dim i As Integer
arr(0) = 0
arr(1) = 1
For i = 2 To n - 1
arr(i) = a * arr(i - 1) b * arr(i - 2)
Next i
my_fun = Application.Transpose(arr)
End Function
Этот код возвращает массив, в котором следующие элементы являются значениями следующей последовательности. Как я могу заставить свою функцию возвращать последний элемент этого массива вместо просто массива? Например :
В этом случае код должен возвращать 4, потому что это самый последний элемент массива. Знаете ли вы, как это можно выполнить?
Комментарии:
1. Вы имеете в виду
my_fun = arr(Ubound(arr))
? Илиarr(n-1)
?2. Отлично! Большое вам спасибо ;))
Ответ №1:
Чтобы вернуть последний элемент массива:
my_fun = arr(Ubound(arr))
или поскольку верхняя граница равна n - 1
:
my_fun = arr(n - 1)