2

我正在尝试设置一个宏,该宏可以在给定 2 个输入的情况下参数化方程。我想不出一种方法让 Solver 使用单元格的值作为“值”。我现在得到的宏如下:

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

执行宏时,会弹出 Solver Results 框说Error in model. Please verify that all cells and Constraints are valid.

有什么办法可以完成我想要的吗?

4

1 回答 1

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

希望能解决您的问题。

问候, 萨尔

于 2012-11-26T05:10:30.477 回答