循环求解器选择性崩溃excel的vba代码?
我有一个问题,我希望有人能帮我解决。我把一些vba代码放在一起,让excel循环求解器(设置为进化方法)。代码如下:循环求解器选择性崩溃excel的vba代码?,vba,excel,crash,solver,Vba,Excel,Crash,Solver,我有一个问题,我希望有人能帮我解决。我把一些vba代码放在一起,让excel循环求解器(设置为进化方法)。代码如下: Sub Repeat_Solver() Worksheets("DC Ranking by CM (All DC costs)").Activate limit = 148 i = 147 Application.ScreenUpdating = True Do Until i = limit If Range("B
Sub Repeat_Solver()
Worksheets("DC Ranking by CM (All DC costs)").Activate
limit = 148
i = 147
Application.ScreenUpdating = True
Do Until i = limit
If Range("BV" & i).Value = "Y" Then
SolverReset
SolverOk SetCell:="$EQ$" & i, MaxMinVal:=1, ValueOf:=0, ByChange:="$CA$" & i, _
Engine:=3, EngineDesc:="Evolutionary"
SolverAdd CellRef:="$CG$" & i, Relation:=3, FormulaText:="45"
SolverAdd CellRef:="$CH$" & i, Relation:=1, FormulaText:="0.4"
SolverAdd CellRef:="$CA$" & i, Relation:=1, FormulaText:="$E$" & i
SolverAdd CellRef:="$CA$" & i, Relation:=4, FormulaText:="integer"
SolverOptions MaxTime:=60, Iterations:=200, Precision:=0.000001, _
AssumeLinear:=False, StepThru:=False, Estimates:=1, _
Derivatives:=1, SearchOption:=1, IntTolerance:=1, _
Scaling:=False, Convergence:=0.000001, AssumeNonNeg:=True, _
PopulationSize:=100, RandomSeed:=0, MutationRate:=0.075, _
Multistart:=False, RequireBounds:=False, MaxSubproblems:=3, _
MaxIntegerSols:=2, SolveWithout:=False, MaxTimeNoImp:=30
SolverOk SetCell:="$EQ$" & i, MaxMinVal:=1, ValueOf:=0, ByChange:="$CA$" & i, _
Engine:=3, EngineDesc:="Evolutionary"
SolverOk SetCell:="$EQ$" & i, MaxMinVal:=1, ValueOf:=0, ByChange:="$CA$" & i, _
Engine:=3, EngineDesc:="Evolutionary"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
i = i + 1
Else
i = i + 1
End If
Loop
End Sub
当我设置limit=147
和I=146
(仅为第146行运行它)时,它会工作-但出于某种奇怪的原因,当我为limit=148
和I=147
运行它时(如上面的代码所示),它会暂停“设置问题…”。。。33%,然后excel停止响应
我甚至尝试在第147行手动运行solver(没有vba代码),但仍然存在同样的问题—excel崩溃。(奇怪的是,如果我将“解算器”设置为GRG非线性,而不是进化,它似乎确实起作用。)
有人知道我做错了什么吗?提前感谢您的帮助