我有一个'X'数量的变量(可能在3到20个选项之间),它们将被组合起来计算所有可能的组合以满足标准.对于每个额外的变量,引入了一个额外的循环,但我不知道是否可以动态创建循环(在excel VBA中,代码不必非常快).
为了证明:我有var.a,h = 2,var.B,h = 3.我想知道所有等于10的组合或2个变量的最佳组合.
在这种情况下:选项1 = 5*A = 10,3*B = 9,2*A和2*B = 10,3*A和1*B = 9.
代码如下所示:
For A = 0 to 5
h = 0 'Reset previous h if solution is found
For B = 0 to 5
h_test = A * height(A) + B * heigth(B)
if h_test > 10
if h = 0 then
exit for
else
write h
exit for
end if
h = h_test
Next B
Next A
Run Code Online (Sandbox Code Playgroud)
如果引入了另一个参数(例如C = 4),则代码为:
For A …Run Code Online (Sandbox Code Playgroud)