无法使用VBA在规划求解中设置整数约束

时间:2019-02-26 15:22:25

标签: vba integer constraints solver

似乎有很多未解决的问题,像这样的问题。我确保其他问题中没有给出的答复/答案能够解决我的问题。

目标: 要使用VBA设置并激活 Solver

问题: 除了未考虑整数约束之外,其他所有内容似乎都可以正常工作。可以通过在运行VBA之后手动查看“求解器”对话框来确认这一点。

我的代码如下:

SolverReset    

'Set constraints    

SolverAdd cellRef:=Range("$L$2:$L$99"), relation:=4, FormulaText:="integer"     

SolverAdd cellRef:=Range("$N$1"), relation:=2, FormulaText:=0     

SolverAdd cellRef:=Range("$N$2:$N$99"), relation:=3, FormulaText:=0    

'Set Objective    

SolverOk SetCell:="$T$1", MaxMinVal:=2, ValueOf:="0",_
    ByChange:="$L$2:$L$99", Engine:=1, EngineDesc:="GRG Nonlinear"    

'Run Solver    

SolverSolve UserFinish:=True 

打开求解器对话框将显示除整数约束以外的所有内容均已成功设置: missing integer constraint

请注意,我已经尝试过:

-不包括 FormulaText:="integer"

-在我的FormulaText值周围加双引号

重置计算机

1 个答案:

答案 0 :(得分:0)

呜呼!

我不知何故偶然发现了我的答案!或至少是一个答案(我仍然不知道为什么原始代码不起作用)。

更换 SolverAdd cellRef:=Range("$L$2:$L$99"), relation:=4, FormulaText:="integer"

使用SolverAdd CellRef:="$L$2:$L$99", Relation:=4, FormulaText:="integer"

似乎可以解决问题。

我仍在使用

SolverAdd CellRef:=Range("N1"), Relation:=2, FormulaText:=0

SolverAdd CellRef:=Range("$N$2:$N$40"), Relation:=3, FormulaText:=0

因为它们起作用了,所以为什么要改变它们。

如果有人可以解释为什么原始代码不起作用,我将非常感激!