我正在尝试运行一个长长的行列表,以优化我的模型J列中的“最低成本”解决方案。
列C、D、E和F中有四个变量,它们从第9行向下运行到第50行,以及一些约束。
对于VBA来说,这是相当新的,但初始的单行求解器代码如下所示,基本上需要继续重复这个过程,然后通过更改变量C10 - F10来求解J10,然后移到第11行等。
任何开始循环过程的指针都将不胜感激!
干杯!
Sub Macro11()
SolverOk SetCell:="$J$9", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$9:$F$9", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$C$9", Relation:=1, FormulaText:="23"
SolverAdd CellRef:="$D$9", Relation:=1, FormulaText:="23"
SolverOk SetCell:="$J$9", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$9:$F$9", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$J$9", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$9:$F$9", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
SolverOk SetCell:="$J$9", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$9:$F$9", _
Engine:=1, EngineDesc:="GRG Nonlinear"
End Sub发布于 2018-05-18 23:46:27
输入由表示范围的字符串定义,因此通过连接循环变量来创建范围字符串:
Sub Macro11()
Dim iRow As Integer
For iRow = 9 To 50
SolverOk SetCell:="$J" & iRow, MaxMinVal:=2, ValueOf:=0, ByChange:="$C" & iRow & ":$F" & iRow, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$C" & iRow, Relation:=1, FormulaText:="23"
SolverAdd CellRef:="$D" & iRow, Relation:=1, FormulaText:="23"
SolverOk SetCell:="$J" & iRow, MaxMinVal:=2, ValueOf:=0, ByChange:="$C" & iRow & ":$F" & iRow, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$J" & iRow, MaxMinVal:=2, ValueOf:=0, ByChange:="$C" & iRow & ":$F" & iRow, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
SolverOk SetCell:="$J" & iRow, MaxMinVal:=2, ValueOf:=0, ByChange:="$C" & iRow & ":$F" & iRow, _
Engine:=1, EngineDesc:="GRG Nonlinear"
Next iRow
End Subhttps://stackoverflow.com/questions/50414762
复制相似问题