0
我使用求解用下面的代码:VBA求解循环
Sub Test()
SolverReset
SolverOk SetCell:="$K$7", MaxMinVal:=1, ValueOf:=0, ByChange:="$I$7:$J$7", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$G$7", Relation:=2, FormulaText:="$H$7"
SolverAdd CellRef:="$K$7", Relation:=2, FormulaText:="$B$7"
SolverSolve UserFinish:=False
SolverFinish KeepFinal:=1
End Sub
我现在需要把它变成一个循环,以便从7行求解器运行至行17.我编码它按以下但它不工作:
Dim i As Long
For i = 7 To 17
SolverReset
SolverOk SetCell:="$K$" & i, MaxMinVal:=1, ValueOf:=0, ByChange:="$I$ & i:$J$ & i", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$G$" & i, Relation:=2, FormulaText:="$H$" & i
SolverAdd CellRef:="$K$" & i, Relation:=2, FormulaText:="$B$" & i
SolverSolve UserFinish:=False
SolverFinish KeepFinal:=1
Next i
End sub
“不工作”应该加入审查列表...你能解释更详细的结果是什么你得到 - 是编译错误,运行时异常还是其他? – GSazheniuk
它工作没有循环,所以它似乎是一个编译错误(我不知道ByChange函数的正确语法)。 – fdt6243
因此,您在该位置错过了双引号 - ByChange:=“$ I $&i:$ J $&i”,您应该使用ByChange:=“$ I $”&i&“:$ J $ “&我试着让我知道这是否是一个问题。 – GSazheniuk