Excel解算器 - 使用更改“ValueOf”输入进行优化

时间:2012-11-12 22:31:59

标签: excel

我正在尝试设置一个可以参数化给定2个输入的方程的宏。我无法想办法让Solver使用单元格的值作为“Value Of”。我现在的宏观如下:

Sub Macro2()

   SolverReset
   SolverAdd CellRef:="$G$2", Relation:=1, FormulaText:="100"
   SolverAdd CellRef:="$G$2", Relation:=3, FormulaText:="0"
   SolverOk SetCell:="$M$6", MaxMinVal:=3, ValueOf:="$B$2", ByChange:="$G$2", Engine:= _
       3, EngineDesc:="Evolutionary"
   SolverSolve

End Sub

执行宏时,弹出解算器结果框,显示Error in model. Please verify that all cells and Constraints are valid.

有什么方法可以实现我想要的目标吗?

1 个答案:

答案 0 :(得分:2)

纳特。

使用引用单元格的变量,而不是直接引用“ValueOf”参数的单元格。例如:

Sub Macro2()

    Dim target As Double
    target = Range("B2")

    SolverReset
    SolverAdd CellRef:="$G$2", Relation:=1, FormulaText:="100"
    SolverAdd CellRef:="$G$2", Relation:=3, FormulaText:="0"
    SolverOk SetCell:="$M$6", MaxMinVal:=3, ValueOf:=target, ByChange:="$G$2", _
      Engine:= 3, EngineDesc:="Evolutionary"
    SolverSolve

End Sub

希望能解决您的问题。

此致 萨尔