【发布时间】:2015-07-13 21:24:01
【问题描述】:
大家好:我对 VBA 完全陌生,所以我使用宏记录器来帮助获取我想要的代码的要点。 我对 Solver 的所有输入都在一行中(例如我的工作表的第 19 行)。我的目标单元格在 R 列中,决策单元格在 E 列和 F 列中,约束在 G 列中。我最终想创建更多输入行,比如 10 个,10 个目标函数都在 R 列中等等...... 我想保持列固定,但创建一个循环遍历 10 行,为每一行运行求解器,然后重置并运行下一行。当它到达第 10 行时,它会检查 $R29 是否为 "",如果是,它会停止运行。
我知道我可能应该使用某种形式的“Do While Cells(Row,1) "" " 构造,但我不知道如何在 VBA 中创建这个简单的循环。 谢谢
Sub RR_SC_OPTIMIZER()
'
' RR_SC_OPTIMIZER Macro
'
'
SolverOk SetCell:="$R$19", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$19:$F$19", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$E$19", Relation:=1, FormulaText:="$G$19"
SolverOk SetCell:="$R$19", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$19:$F$19", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$R$19", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$19:$F$19", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
SolverOk SetCell:="$R$19", MaxMinVal:=2, ValueOf:=0, ByChange:="$E$19:$F$19", _
Engine:=1, EngineDesc:="GRG Nonlinear"
End Sub
【问题讨论】: