Я хотел бы знать, как я могу получить код для выполнения операции решателя на разных строках (300 строк). Существует одна целевая переменная, несколько ограничений и две переменные, которые необходимо оптимизировать. Используя приведенную ниже команду, я получаю сообщение об ошибке, что проблема слишком велика для Solver, что может быть ошибкой только в синтаксисе. Это мой синтаксис:Применение решения к различным строкам
Dim i As Long
For i = 7 To 310
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AA$" & i, Relation:=1, FormulaText:="-0.000001"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AB$" & i, Relation:=3, FormulaText:="0.000001"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AC$" & i, Relation:=1, FormulaText:="-0.000001"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AD$" & i, Relation:=3, FormulaText:="0.000001"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AE$" & i, Relation:=3, FormulaText:="0"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AF$" & i, Relation:=3, FormulaText:="0"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AE$" & i, Relation:=1, FormulaText:="1"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$AF$" & i, Relation:=1, FormulaText:="1.5"
SolverOk SetCell:="$AA$" & i, MaxMinVal:=2, ValueOf:=0, ByChange:="$AE$:$AF$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOptions MaxTime:=0, Iterations:=1000000, Precision:=0.000001, Convergence _
:=0.0001, StepThru:=True, Scaling:=True, AssumeNonNeg:=True, Derivatives:=1
SolverOptions PopulationSize:=100, RandomSeed:=0, MutationRate:=0.075, Multistart _
:=False, RequireBounds:=False, MaxSubproblems:=0, MaxIntegerSols:=0, _
IntTolerance:=1, SolveWithout:=False, MaxTimeNoImp:=30
SolverSolve
Next i
End Sub
что значение 'i', когда он терпит неудачу? – SeanC
'ByChange: =" $ AE $: $ AF $ "& i' - вы уверены, что это правильно? Может быть, это должно быть 'ByChange: =" $ AE $ "& i &": $ AF $ "& i' Также я думаю, что вам нужно Reset solver после каждой итерации. –