所以这是我的问题。我正在尝试编写一个使用求解器执行函数的循环。基本上它从一个单元开始,运行求解器,将目标和约束单元移动到正确的单元,解决,移动目标和约束单元到右边14,解决,右边一个,解决,右边14解决,直到它找到一个空白。Excel中的VBA循环与求解器
这里是前几行代码,告诉你我在长版本中做什么。
Range("RI6").Select
SolverOk SetCell:="$RI$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$RG$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$RI$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$RI$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("RJ16").Select
SolverOk SetCell:="$RJ$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$RJ$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$RJ$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$RJ$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("RX16").Select
SolverOk SetCell:="$RX$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$RX$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$RX$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$RX$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("RY16").Select
SolverOk SetCell:="$RY$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$RY$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$RY$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$RY$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("SM16").Select
SolverOk SetCell:="$SM$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$SM$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$SM$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$SM$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("SN16").Select
SolverOk SetCell:="$SN$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$SN$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$SN$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$SN$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("TB16").Select
SolverOk SetCell:="$TB$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$TB$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$TB$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$TB$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("TC16").Select
SolverOk SetCell:="$TC$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$TC$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$TC$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$TC$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("TQ16").Select
SolverOk SetCell:="$TQ$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$TQ$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$TQ$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$TQ$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("TR16").Select
SolverOk SetCell:="$TR$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$TR$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$TR$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$TR$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("UF16").Select
SolverOk SetCell:="$UF$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$UF$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$UF$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$UF$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
Range("UG16").Select
SolverOk SetCell:="$UG$16", MaxMinVal:=3, ValueOf:=0.15, ByChange:="$UG$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$UG$1", Relation:=3, FormulaText:="74"
SolverAdd CellRef:="$UG$1", Relation:=1, FormulaText:="87"
SolverSolve (True)
非常感谢您的任何帮助/建议。
您似乎没有任何问题。你的代码是否真的有用?如果是这样 - 你可以通过循环缩短它。 –
如果你需要编写循环的帮助,那么你可能想看看下面的网站:http://www.homeandlearn.org/excel_vba_for_loops.html – Ralph
我的问题是如何做细胞运动,我试图循环,不能让它正常工作。代码在写出很长的路时起作用,但不是当我尝试循环时。 –