我正在尝试设置一个宏,可以在给定 2 个输入的情况下参数化方程。不过,我无法找到一种方法让求解器使用单元格的值作为“值”。我目前得到的宏如下:
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
执行宏时,会弹出“求解器结果”框,显示模型中出现错误。请验证所有单元格和约束是否有效。
有什么办法可以实现我想要的吗?
最佳答案
纳特。
不要直接引用“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
希望能够解决您的问题。
问候, 萨尔
关于Excel 求解器 - 使用更改 "ValueOf"输入进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352666/