我正在尝试在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
这是数字的样子,Desired专栏最终是我想要的。
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
我意识到我需要使用递归函数,但我无法对其进行排序。有什么想法吗?谢谢。
答案 0 :(得分:0)
只需创建一个可以保持最小值的变量?比方说,minVar。
如果结果大于最小值,则使用minVar。 如果结果低于最小值,则使用该值并覆盖minVar。
Dim minVar as double
minVar = 999999
If function_temp < function1(var1, var2, var3, var4)
Then if function_temp < minVar
Then minVar = function_temp
end if
temp function2= function_temp
end if