Я пытаюсь запрограммировать рекурсивную функцию в VBA, так что, как только созданная мной функция начнет увеличиваться, результат будет ограничен в самой нижней точке.Рекурсивная функция VBA
Код я написал до сих пор:
Public Function function2(var1, var2, var3, var4)
temp = Application.WorksheetFunction.Max(var3- 1, 2)
function_temp = function1(var1,var2, temp, var4)
If function_temp < function1(var1, var2, var3, var4) Then function2= function_temp
If function_temp >= function1(var1, var2, var3, var4) Then function2= function1(var1, var2, var3, var4)
End Function
Вот что цифры выглядят, с требуемой колонки, что я хочу в конце концов.
Duration Result Current Desired
2 2.845 2.845 2.845
3 2.563 2.563 2.563
4 2.371 2.371 2.371
5 2.252 2.252 2.252
6 2.189 2.189 2.189
7 2.170 2.170 2.170
8 2.182 2.170 2.170
9 2.213 2.182 2.170
10 2.246 2.213 2.170
11 2.259 2.246 2.170
12 2.241 2.241 2.170
Я понимаю, что мне нужно использовать рекурсивную функцию, но я не могу ее разобрать. Есть предположения? Благодарю.
Эй @ dc2, если это в excel, вы можете использовать = min (cell1, cell2, cellAbove) ... это работает? – TheSilkCode
Нет, мне нужно его закодировать в VBA, так как значения меняются. – DC2
Так что, я думаю, я не понимаю, что вы делаете, это ваши данные в excel? И то, и другое? Итак, вы пишете UDF или суб? Просто неясно, что вы пытаетесь сделать ... – TheSilkCode