Excel 求解器 - 使用更改 "ValueOf"输入进行优化

标签 excel

我正在尝试设置一个宏,可以在给定 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/

相关文章:

excel - 如何使用 vba 将过滤后的值仅粘贴到受此类过滤器影响的单元格中?

excel - 查找列标题、复制数据并将值粘贴到另一个工作簿中

excel - VBA - 类模块 - 通过索引访问属性

python - Python Zip 函数的 VBA 版本(FOR EACH 循环)

php - Laravel Excel 将设置值导出到单元格?

excel - 相同的公式,但在 Matlab 和 Excel 中的结果不同

excel - 将记录集数据复制到多个工作表中以避免Excel VBA中最大行数限制的问题

excel - 使用VBA将Excel工作簿导出为PDF

vba - Excel VBA 日期生成循环

excel - 编译-语法错误: When toggling select filter with If Statement