VBA:循环求解器命令,其中'ByChange'单元格随每个循环而变化

时间:2015-09-10 10:20:49

标签: excel vba loops solver

我试图将一个求解器命令循环到一个特定的目标单元格行,其中ByChange范围和ValueOf范围也会随着每个循环而变化。

基本上这样我就不必在桌子上手动执行此操作。

到目前为止,我有:

Sub loop_solver()

Dim i As Long

For i = 1 To 10

    SolverReset
    SolverOptions precision:=0.001

    SolverOk SetCell:=Range("S & i"), ByChange:=Range("O & i:Q & i"), _
        MaxMinVal:=3, ValueOf:=Range("T & i")

    SolverSolve UserFinish:=True

    SolverFinish KeepFinal:=1

Next

End Sub

我还需要处理一个约束,该约束也会在每个循环中更改单元格。

1 个答案:

答案 0 :(得分:0)

对任何有兴趣的人都这样。我通过添加.offset让我的代码工作,因为我意识到你无法计算范围内的循环。

Sub loop_solver()

Dim i As Long

For i = 0 To 10

   SolverReset
   SolverOptions precision:=0.001

   SolverOk SetCell:=Range($S$3).Offset(i,0), ByChange:=Range("$O$3:$Q$3").Offset(i,0), _
        MaxMinVal:=3, ValueOf:=Range("$T$3").Offset(i,0)

   SolverSolve UserFinish:=True

   SolverFinish KeepFinal:=1

Next

End Sub