【问题标题】:Setting up a solver loop设置求解器循环
【发布时间】:2017-01-23 16:14:33
【问题描述】:

如何设置一个循环来解决一列目标单元格与一列可变单元格?

不管是哪种类型的求解器,“GRG Nonlinear”似乎都可以正常工作。

我的目标单元格是 E7:E207
解决方案最小化或=0,因为我想要一个真正的根。

我的可变单元格是 D7:D207

它求解的变量是一个三次方程,它输出实根(没有虚部)。我环顾了论坛,但我似乎无法理解。

到目前为止我的基本宏:

Sub Solver()
'
' Solver Macro
'
' Keyboard Shortcut: Ctrl+Shift+S
'
    Range("E8").Select
    SolverOk SetCell:="$E$7", MaxMinVal:=3, ValueOf:=0, ByChange:="$D$7", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$E$7", MaxMinVal:=3, ValueOf:=0, ByChange:="$D$7", Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverSolve
End Sub

【问题讨论】:

  • 你试过录制宏吗?到目前为止,我自己还没有使用过求解器。因此,我可能会重新发明轮子......

标签: excel vba loops solver


【解决方案1】:

这个问题已经回答了很多次了。

以下将解决您的问题...

Sub mySolve()
Dim SetAddr As String, ChgAddr As String
Dim i As Long

For i = 7 To 207
    SetAddr = Sheets("Sheet1").Cells(i, 5).Address
    ChgAddr = Sheets("Sheet1").Cells(i, 4).Address
    SolverOk SetCell:=SetAddr, MaxMinVal:=3, ValueOf:=0, ByChange:=ChgAddr, Engine:=1
    SolverSolve UserFinish:=True
Next i

End Sub

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多