我在使用VBA代码运行解决程序。下面是我的密码。我希望单元格C87:K93是整数,但是,约束不会被添加到求解器中,所以我得到的值都是小数。我可以知道如何更改代码以便考虑整数约束吗?
Sub Solve()
SolverReset
SolverAdd CellRef:="$C$87:$K$93", Relation:=4, FormulaText:="integer"
SolverAdd CellRef:="$C$87:$K$93", Relation:=1, FormulaText:="$C$48:$K$54"
SolverAdd CellRef:="$L$87:$L$93", Relation:=1, FormulaText:="$M$87:$M$93"
SolverAdd CellRef:="$C$87:$K$93", Relation:=3, FormulaText:="0"
SolverOk SetCell:="$N$95", MaxMinVal:=1, ValueOf:="0", ByChange:="$C$87:$K$93"
SolverSolve UserFinish:=True
End Sub下面是指向运行代码后的Solver图片的链接,整数约束只是不出现

非常感谢你的帮助
发布于 2017-09-21 14:32:54
我最近也遇到了同样的问题。即使没有整数约束末尾的FormulaText。
这应该是可行的:
Sub Solve()
SolverReset
SolverOk SetCell:="$N$95", MaxMinVal:=1, ValueOf:="0", ByChange:="$C$87:$K$93"
SolverAdd CellRef:="$C$87:$K$93", Relation:=4
SolverAdd CellRef:="$C$87:$K$93", Relation:=1, FormulaText:="$C$48:$K$54"
SolverAdd CellRef:="$L$87:$L$93", Relation:=1, FormulaText:="$M$87:$M$93"
SolverAdd CellRef:="$C$87:$K$93", Relation:=3, FormulaText:="0"
SolverSolve UserFinish:=True
End Sub当将整数约束(SolverAdd)应用于非决策变量(ByChange)的单元格时,求解器提示:
"Integer约束单元格引用必须只包括可变单元格。“
在您的例子中不是这样,但是目标函数的设置仍然起着作用。假设在添加SolverOk之前添加整数约束,求解器还不知道决策变量(ByChange),因此不包含整数约束。
https://stackoverflow.com/questions/22966436
复制相似问题