使用VBA最大化的Excel解算器不起作用

时间:2013-11-28 11:57:49

标签: excel vba excel-vba solver

我正在尝试使用求解器录制宏。我正在尝试最大化细胞M24,改变细胞D8,E8,D13和E13。 D8,E8,D13和E13均大于0,F8 = D8 + E8 = 1,F13 = D13 + E13 = 1。我的代码不起作用。基本上,它根本没有改变单元格D8,E8,D13和E13中的任何值?有人可以指出我做错了吗?

Sub SolverMacro1()
'
' SolverMacro1 Macro
'

        Worksheets("Optimise").Activate

        SolverAdd CellRef:="$D$8", Relation:=3, FormulaText:="0"
        SolverAdd CellRef:="$E$8", Relation:=3, FormulaText:="0"
        SolverAdd CellRef:="$F$8", Relation:=2, FormulaText:="1"
        SolverAdd CellRef:="$D$13", Relation:=3, FormulaText:="0"
        SolverAdd CellRef:="$E$13", Relation:=3, FormulaText:="0"
        SolverAdd CellRef:="$F$13", Relation:=2, FormulaText:="1"


        SolverOk SetCell:="$M$24", MaxMinVal:=1, ByChange:="$D$8:$E$8 & $D$13:$E$13"

        SolverSolve

End Sub

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

尝试将传递给ByChange的{​​{1}}参数的值更改为SolverOk。您可能还想在激活工作表之后但在调用其他Solver过程之前调用"$D$8:$E$8,$D$13:$E$13"